如何调试驱动(.ko)文件
我用ddd调试,用如下的命令:
ddd globalfifo.ko
这时候可以出现源代码,然后我在globalfifo_init函数设置断点
然后我在另外一个终端执行: sudo insmod globalfifo.ko命令,期望在那个断点处停下来。
但是结果是没有停!!
已经确定是用-g选项编译成功了.
------解决方案--------------------主要还是靠打印信息。
------解决方案--------------------嗯 最好用printk 打印消息
------解决方案--------------------你觉得哪里可能会出问题就在哪里 打印
要是思维很清晰的话 打印找错其实挺快的
------解决方案--------------------printk最好用,呵呵
实在是想用单步调试,可以用kgdb 或者kdb ,
kgdb需要串口线或者网络连远程机器, kdb可以单机调试,不过需要给内核打patch, 而且那种实时其实也不好弄。除非你printk搞不清楚问题的情况就去试试吧
------解决方案--------------------一直都用printk 打印消息
------解决方案--------------------老老实实打印吧~~~~~
------解决方案--------------------我也一直用printk打印信息来判断
《Linux设备驱动程序》第三版第4章有讲调试技术的,可查看。。。