设备驱动调试全解析:从寄存器到内核探针
1. 寄存器与信息结构调试
在调试过程中,EAX 寄存器常常包含关键信息结构的地址。通过以下操作,我们可以查看寄存器内容:
kbd> r
执行上述命令后,会输出寄存器的内容,例如:
eax = 0xcf1ae680 ebx = 0xce03b000 ecx = 0x00000000
...
由此可知, 0xcf1ae680 即为信息结构的地址。接下来,我们使用 md 命令来转储该地址的内容:
kbd> md 0xcf1ae680
转储结果如下:
0xcf1ae680 00005301 0000ABC 00000000 10000400
...
为了理解这些转储内容,我们需要查看对应的结构定义。信息结构 info 在 include/linux/serialP.h 中被定义为 struct async_struct ,具体定义如下:
struct async_struct {
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



