我正在尝试在兼容 ARMv6 的处理器版本 4 上调试代码。
我使用 --host=arm-openwrt-linux-gnueabi
标志编译了 GDBserver。
gdb本身是用
--host=x86_64-unknon-linux-gnu --target=arm-openwrt-linux-gnueabi --with-expat
如果我现在连接到 gdbserver 中,我的程序正在运行,我得到以下错误信息:
(gdb) target remote 192.168.x.x:2345
Remote debugging using 192.168.x.x:2345
Cannot access memory at address 0x0
0xb6fdaec0 in ?? ()
(gdb) set sysroot /home/xxxxxx/Dokumente/lgn-sdk-v0.2/staging_dir/toolchain-arm_v6k_gcc-4.6-linaro_eglibc-2.15_eabi/
Reading symbols from /home/xxxxxx/Dokumente/lgn-sdk-v0.2/staging_dir/toolchain-arm_v6k_gcc-4.6-linaro_eglibc-2.15_eabi/lib/ld-linux.so.3...done.
Loaded symbols for /home/xxxxxxx/Dokumente/lgn-sdk-v0.2/staging_dir/toolchain-arm_v6k_gcc-4.6-linaro_eglibc-2.15_eabi/lib/ld-linux.so.3
(gdb) n
Single stepping until exit from function _start,
which has no line number information.
Program received signal SIGILL, Illegal instruction.
0xb6fe8d20 in _dl_debug_initialize () from /home/xxxxx/Dokumente/lgn-sdk-v0.2/staging_dir/toolchain-arm_v6k_gcc-4.6-linaro_eglibc-2.15_eabi/lib/ld-linux.so.3
(gdb)
Single stepping until exit from function _dl_debug_initialize,
which has no line number information.
Program terminated with signal SIGILL, Illegal instruction.
最佳答案
我没有完整的答案,但我有一个类似的问题并通过以下方式解决:
- 通过目标远程连接
- 打破主要
- 继续
- 然后,设置系统根
这让我摆脱了崩溃。不过,我当然会对更好的解决方案感兴趣。
关于c - 使用 GDB : Program dies after SIGILL, 非法指令进行远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25443689/