linux下用GDB调试可加载模块
参考文章:http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/developers-handbook/kerneldebug-kld.html
这篇文章主要是对参考文章的简单整理,大同小异。首先,需要在编译模块时加入调试信息。两种方式,一种是编译时使用“make COPTS-g”,另一种是用“gcc -g”作为“gcc”的别名。第二步,插入模块,找到模块的加载位置。原文是用kldstat命令,linux下没找到,但是可以通过“cat /proc/modules | grep test”(假设模块名称为test.ko,注意不要带".ko")找到模块的加载地址,如下图所示:
第三步,找到代码段(.text段)的偏移量,如下图所示:
最后的操作如下图所示:
