GDB не может разрешить символы для ядра Linux - PullRequest
1 голос
/ 11 марта 2019

У меня настроена среда отладки Linux Kernel с VMware Workstation.Но когда я попытался соединиться с gdb, который соединяется правильно, но я не могу установить какую-либо точку останова или проверить какой-либо символ ядра.

Целевая машина (debugee) Ubuntu 18: Я скомпилировал ядро ​​Linux 5.0-0 со следующимдирективы:

CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_SECTION_MISMATCH is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set

Также моя конфигурация файла VMX:

debugStub.listen.guest64 = "TRUE"
debugStub.listen.guest64.remote="TRUE"

После этого я перенес vmlinux на машину отладчика и использую gdb:

bash$ gdb vmlinux
gdb-peda$ target remote 10.251.31.28:8864
Remote debugging using 10.251.31.28:8864
Warning: not running or target is remote
0xffffffff9c623f36 in ?? ()
gdb-peda$ disas sys_open
No symbol "do_sys_open" in current context.

1 Ответ

0 голосов
/ 12 марта 2019

Сначала вам нужно установить kernel-debug-devel, kernel-debuginfo, kernel-debuginfo-common для соответствующей версии ядра. Затем вы можете использовать утилиту аварийного отключения для отладки ядра, которое внутренне использует gdb

...