日期:2014-05-16  浏览次数:20710 次

如何调试驱动(.ko)文件
我用ddd调试,用如下的命令:
ddd globalfifo.ko
这时候可以出现源代码,然后我在globalfifo_init函数设置断点
然后我在另外一个终端执行: sudo insmod globalfifo.ko命令,期望在那个断点处停下来。
但是结果是没有停!!

已经确定是用-g选项编译成功了.


------解决方案--------------------
主要还是靠打印信息。
------解决方案--------------------
嗯 最好用printk 打印消息
------解决方案--------------------
你觉得哪里可能会出问题就在哪里 打印
要是思维很清晰的话 打印找错其实挺快的
------解决方案--------------------
printk最好用,呵呵

实在是想用单步调试,可以用kgdb 或者kdb ,
kgdb需要串口线或者网络连远程机器, kdb可以单机调试,不过需要给内核打patch, 而且那种实时其实也不好弄。除非你printk搞不清楚问题的情况就去试试吧
------解决方案--------------------
一直都用printk 打印消息
------解决方案--------------------
老老实实打印吧~~~~~
------解决方案--------------------
我也一直用printk打印信息来判断
《Linux设备驱动程序》第三版第4章有讲调试技术的,可查看。。。