- 論壇徽章:
- 0
|
三、調(diào)試:
1, 把GUEST Linux上的內(nèi)核映像文件(vmlinux)和內(nèi)核源代碼拷貝到HOST機(jī)器上。
為了能夠用gdb的list命令顯示源代碼, 看看GUEST機(jī)器上的/lib/modules/<kernel version>/source (以下簡(jiǎn)稱source) 和/lib/modules/<kernel version>/build (以下簡(jiǎn)稱build)這兩個(gè)符號(hào)鏈接各自指向哪里(注:如果編譯內(nèi)核時(shí)沒有用O=<your path>選項(xiàng)指定輸出的路徑,那么這兩個(gè)符號(hào)鏈接就指向同一個(gè)路徑,通常是/usr/src/linux-2.x.xx)。拷貝到HOST機(jī)器上相應(yīng)的路徑上。
提醒: 編譯內(nèi)核之后build目錄下會(huì)有很多臨時(shí)文件, 有上G之大, 可以先把build目錄下的vmlinux拷貝到HOST機(jī)器上, 然后進(jìn)入source目錄, 運(yùn)行:
make O=/lib/module/<kernel version>/build clean
然后再把build和source拷貝到HOST機(jī)器上。
2, 啟動(dòng)安裝在VMWare中的GUEST Linux。
3, 在HOST機(jī)器上運(yùn)行g(shù)db, 進(jìn)行調(diào)試:
- (gdb) file vmlinux //vmlinux就是從GUEST拷貝過來的內(nèi)核映像文件
- Reading symbols from /root/vmlinux...done.
- Using host libthread_db library "/lib/libthread_db.so.1".
- (gdb) target remote localhost:8832 //注意,如果你的GUEST Linux是64位的,這里的localhost:8832就改成localhost:8864
- Remote debugging using localhost:8832
- [New thread 1]
- 0x000f4299 in ?? ()
- warning: shared library handler failed to enable breakpoint
復(fù)制代碼
[ 本帖最后由 albcamus 于 2007-4-23 09:15 編輯 ] |
|