dmesg :
这个命令打印有关内核的信息
基尔:
苹果面包发送信号
语法: kill -signalnumber pid
lsmod :
提供了有关可装载到系统中所有当前系统上的模块的信息
列1 :模块名称
列2 :模块的代码量
第3列:模块对象的地址
第4列:模块计数
第5列:模块状态(loading,unloading,live ) ) ) ) ) ) ) ) )。
第6列:模块的初始装载地址
第7列:使用此模块的模块
env :
列出kdb中的所有环境变量。
使用set命令更改kdb的环境变量
bp [vaddr/symbolname]
设置断点。 如果不添加参数,则会显示当前设置的所有断点。
使用bp命令设置断点时,每个断点都将显示断点编号,并在以后操作该断点时使用该断点编号。
设置断点后,断点不会立即生效。 只有在退出kdb后,断点才会生效。
bd bpnum
be bpnum
上面的两个命令是关闭/打开断点。
bc bpnum
bc命令表示要清除断点。
bt命令:
bt [vadd]
如果没有命令行参数,则会打印kdb当前进程的堆栈信息。 如果未指定地址信息,bt命令将从current stack pointer开始打印。 (' esp' on x86 )
btp pidnum
打印进程堆栈信息
btc
跟踪每个cpu上的当前进程的信息
btt tast_struct object address
bta [DRSTCZEUIMA]
参数表示要打印的进程的状态
ps命令用于打印系统中的进程列表。
1 .要打印系统中的所有进程,而不考虑进程的当前状态,请单击,
$ps A
2、如果不添加任何参数,ps命令将打印除system idle process和deamon process之外的所有进程
3、其他ps之后的参数是要打印的进程的状态参数,例如
$ps R
打印所有正在运行的进程
$ps DS
打印处于不可中断和休眠状态的所有进程。
第一列是进程的地址,即task_struct结构的地址
列2 :进程pid
第三列:进程的ppid
第4列:指示当前进程是否正在cpu上运行
第5列:运行进程的cpu
第6列:进程的当前状态
列7:CPU相关进程信息。 表示task_struct-thread的内容
第8列:进程的命令行名称
kdb启动后,kdb将在当前进程的上下文中运行。 如果要将kdb切换到其他进程的上下文,请使用pid命令。
pid pidnum
rd命令:
此命令打印所有cpu寄存器的信息。
rm命令:
修改寄存器的命令
rm register value
1、md :
显示参数内虚拟地址的内存信息
md vaddr
默认情况下,打印8行信息,每行16个字节
md vaddr [count]
指定要打印内存信息的行数
mdr vaddr count
以字节为单位打印内存信息
mdbytesperwordcrepeat
以指定格式打印内存内容
kdb md4c20xf48d4180
每个word是4个字节,共打印2个
mdp paddr [count]
从物理地址打印存储器信息
我知道物理地址0x00000000对应的虚拟地址是0xc0000000。
因此,MDP0x0000000和md0xc0000000打印的信息相同。
更改mm:内存的内容
mm vaddr contents
缺省情况下,mm的工作机制以机器语言为单位。 这意味着在32位计算机上为4字节,在64位计算机上为8字节。
mmW vaddr contents
其中w表示需要修改的字节数
kdb press TAB
可以使用自动完成功能打印symbols
例如,我想打印以‘s’开头的所有symbol。
kdb s press tab
想知道某个symbol的地址时,直接输入这个symbol就可以了
kdb start_kernel
转载于:https://blog.51cto.com/4989715/1420106