Linux kernel 使用Olimex ARM-USB-OCD适配器在ARMv7上进行远程内核调试
我目前正在尝试调试我的内核。我的目标是在我正在实现的新系统调用中设置断点。内核在远程Imx6q板上运行。我已经设置了JTAG调试器,可以将GDB连接到它并暂停执行 我的问题是调试符号。 我已将这些属性添加到defconfig中:Linux kernel 使用Olimex ARM-USB-OCD适配器在ARMv7上进行远程内核调试,linux-kernel,android-source,jtag,Linux Kernel,Android Source,Jtag,我目前正在尝试调试我的内核。我的目标是在我正在实现的新系统调用中设置断点。内核在远程Imx6q板上运行。我已经设置了JTAG调试器,可以将GDB连接到它并暂停执行 我的问题是调试符号。 我已将这些属性添加到defconfig中: CONFIG_GDB_SCRIPTS=y CONFIG_DEBUG_KERNEL=y CONFIG_RANDOMIZE_BASE=n CONFIG_FRAME_POINTER=y CONFIG_KGDB=y CONFIG_DEBUG_INFO=y 当我开始会话时: (
CONFIG_GDB_SCRIPTS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_RANDOMIZE_BASE=n
CONFIG_FRAME_POINTER=y
CONFIG_KGDB=y
CONFIG_DEBUG_INFO=y
当我开始会话时:
(gdb) tar ext :3333
Remote debugging using :3333
warning: No executable has been specified and target does not support
determining executable automatically. Try using the "file" command.
0xa7780ef0 in ?? ()
(gdb) c
Continuing.
我可以手动附加符号文件,但需要提供附加地址
(gdb) add-symbol-file /home/tlavocat/development/android/out/target/product/wandboard_qca/kernel-imx/kernel/sys.o
The address where /home/tlavocat/development/android/out/target/product/wandboard_qca/kernel-imx/kernel/sys.o has been loaded is missing
我想停在这里的函数是:
wandboard_qca:/ # cat /proc/kallsyms | grep sys_keeper_get_state
c003e0ac T sys_keeper_get_state
它是在kernel/sys.c中实现的
我的问题是,如何将我的符号正确地附加到正确的地址
感谢您的回答我只需要加载le内核二进制文件
file .out/target/product/wandboard_qca/kernel-imx/vmlinux
然后连接到远程目标。我只需要加载le内核二进制文件
file .out/target/product/wandboard_qca/kernel-imx/vmlinux
然后连接到远程目标