Arm 使用qemu和gdb多拱时指令非法

Arm 使用qemu和gdb多拱时指令非法,arm,gdb,qemu,Arm,Gdb,Qemu,嗨,我正在尝试使用qemu和gdb多拱调试arm二进制文件, 我95%肯定二进制文件是armv5tej。 在gdb中继续中断几秒钟后,我收到错误非法指令 qemu手臂静态 # chroot . /rootfs/qemu-arm-static -g 1234 /rootfs/test ... ... qemu错误: qemu: uncaught target signal 4 (Illegal instruction) - core dumped Illegal instruction (co

嗨,我正在尝试使用qemu和gdb多拱调试arm二进制文件, 我95%肯定二进制文件是
armv5tej
。 在gdb中继续中断几秒钟后,我收到错误
非法指令

qemu手臂静态

# chroot . /rootfs/qemu-arm-static -g 1234  /rootfs/test
...
...
qemu错误:

qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)
gdb连拱

$ sudo gdb-multiarch -q --nh -ex 'set architecture armv5te'   -ex 'file /rootfs/test ' -ex 'set sysroot /rootfs'    -ex 'target remote localhost:1234' 
The target architecture is assumed to be armv5te
Reading symbols from /rootfs/test...
(No debugging symbols found in /rootfs/test)
Remote debugging using localhost:1234
Reading symbols from /rootfs/lib/ld-linux.so.3...
(No debugging symbols found in /rootfs/lib/ld-linux.so.3)
0xff1ba8a0 in _start () from /rootfs/lib/ld-linux.so.3
(gdb) c
Continuing.

Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.
我在gdb multiarch
armv5、armv5t、armv5te、armv5tej中尝试了以下架构
所有人都犯了同样的错误

有什么问题?
谢谢。

测试程序是否执行另一个进程?这是我能马上想到为什么SIGILL不会报告给附加的gdb的唯一原因。另外,您使用的是什么QEMU版本?是的,它会执行
ifconfig
,当它崩溃时,为什么会出现问题?如何预防
qemu user static 1:4.2-3ubuntu6.3
这不是问题,只是调试会话只是第一个进程的,而不是ifconfig的,所以在调试器中没有任何关于崩溃原因的信息。如果您直接运行ifconfig并在调试器中查看它,那么调试器将能够告诉您导致SIGILL的指令是什么。。。我得到
ifconfig:SIOCSIFADDR:No这样的设备作为输出。我不在乎ifconfig是否失败,我只希望主程序将继续运行,不会出现任何异常信号“测试”程序是否执行另一个进程?这是我能马上想到为什么SIGILL不会报告给附加的gdb的唯一原因。另外,您使用的是什么QEMU版本?是的,它会执行
ifconfig
,当它崩溃时,为什么会出现问题?如何预防
qemu user static 1:4.2-3ubuntu6.3
这不是问题,只是调试会话只是第一个进程的,而不是ifconfig的,所以在调试器中没有任何关于崩溃原因的信息。如果您直接运行ifconfig并在调试器中查看它,那么调试器将能够告诉您导致SIGILL的指令是什么。。。我得到
ifconfig:SIOCSIFADDR:No这样的设备作为输出。我不在乎ifconfig是否失败,我只希望主程序能够毫无异常地继续运行