使用ARMv7
作爲目標機器。我編譯了Linux源文件2.6.34.13
作爲目標。如何在ARM上使用kgdb?
目標通過使用minicom的串行端口與主機(Linux開發機器)連接。
目標加載了新內核,並在命令提示符下啓用KGDB。
$ echo ttyAMA0 > /sys/module/kgdboc/parameters/kgdboc
$ echo g > /proc/sysrq-trigger
輸入KGDB ...消息並等待命令。
在主機端,
$arm-none-linux-gnueabi-gdb vmlinux
gdb > set remotebaud 115200
gdb > set debug remote 1
gdb > target remote /dev/ttyS0
在此之後,一些命令通信在默認情況下發生的。
qSupported
從主機發送到目標。但是qSuppoted不被目標支持,所以返回$#00。類似地,?
,HC-1
命令被髮送但是收到適當的響應。但是
qOffsets
命令沒有收到來自目標的任何響應。
我懷疑vmlinux。因爲如果我給list
在gdb,它沒有顯示10行的代碼,而不是它說
arch/arm/kernel/head.S : No such file or directory.
注::編譯內核服務器來完成。所以在開發機器中沒有可用的資源。但是arm-gdb尋找head.S似乎。
我不知道我在做什麼錯誤。我需要爲整個內核加載符號。在這方面指導我。
我不知道,但你有沒有「主機」上編譯內核被用於調試? &你沒有把代碼移動到其他地方? – anishsane
這就是爲什麼它無法找到源代碼? – anishsane
'kgdb'是否需要源代碼可用?也許有一個命令行選項告訴'kgdb'不要查找代碼。 – BenjiWiebe