当前位置: 技术问答>linux和unix
关于驱动模块调试
来源: 互联网 发布时间:2016-02-07
本文导语: 在2.4内核下编写驱动模块,可以像应用程序那样设置一个断点,然后一步步向下调试吗?如果可以应该怎么做?谢谢 | 调试驱动的软件方法有: 1. 用打印调试(printk) 2. 使用 /proc 文件系统调试 3. ...
在2.4内核下编写驱动模块,可以像应用程序那样设置一个断点,然后一步步向下调试吗?如果可以应该怎么做?谢谢
|
调试驱动的软件方法有:
1. 用打印调试(printk)
2. 使用 /proc 文件系统调试
3. 用strace 命令观察调试
4. 使用kdb 调试
其中kdb可以实现你描述的断点调试。
比如
0]kdb> bp scull_read
Instruction(i) BP #0 at 0xcd087c5dc (scull_read)
is enabled globally adjust 1
[0]kdb> go
bp 命令告诉 kdb 在下一次内核进入 scull_read 时停止. 你接着键入 go 来继续执行. 在将一些东西放入一个 scull 设备后, 可以通过在另一个终端的外壳下运行 cat 命令来读取它
具体可以参考Linux Device Driver 2nd
1. 用打印调试(printk)
2. 使用 /proc 文件系统调试
3. 用strace 命令观察调试
4. 使用kdb 调试
其中kdb可以实现你描述的断点调试。
比如
0]kdb> bp scull_read
Instruction(i) BP #0 at 0xcd087c5dc (scull_read)
is enabled globally adjust 1
[0]kdb> go
bp 命令告诉 kdb 在下一次内核进入 scull_read 时停止. 你接着键入 go 来继续执行. 在将一些东西放入一个 scull 设备后, 可以通过在另一个终端的外壳下运行 cat 命令来读取它
具体可以参考Linux Device Driver 2nd