參考文章:http://www.linuxidc.com/Linux/2013-01/77969p2.htm
這篇文章主要是對參考文章的簡單整理,大同小異。
首先,需要在編譯模塊時加入調試信息。兩種方式,一種是編譯時使用“make COPTS-g”,另一種是用“gcc -g”作為“gcc”的別名。
第二步,插入模塊,找到模塊的加載位置。原文是用kldstat命令,linux下沒找到,但是可以通過
“cat /proc/modules | grep test”(假設模塊名稱為test.ko,注意不要帶".ko")找到模塊的加載地址,如下圖所示:
第三步,找到代碼段(.text段)的偏移量,如下圖所示:
偏移量是.text對應的行中第四個十六進制字段(或者說從左往右數第六個字段)是.text段在文件中的偏移量。將這一偏移量與模塊中的加載地址相加,就可以找到模塊的代碼在重定向之後的地址了。在我們的例子中,可以得到0xffffffffa001b000 + 0x00000040 = 0xFFFFFFFFA001B040。
最後的操作如下圖所示: