首页 > 解决方案 > 使用 qemu 和 gdb-multiarch 时的非法指令

问题描述

嗨,我正在尝试使用 qemu 和 gdb-multiarch 调试 arm 二进制文件,我 95% 肯定二进制文件是armv5tej. Illegal instruction继续中断 gdb 后几秒钟我收到错误消息。

qemu-arm-static

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

qem 错误:

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 都给出了相同的错误。

问题是什么?谢谢。

标签: armgdbqemu

解决方案


推荐阅读