GDB没有正确执行

时间:2018-04-19 18:59:43

标签: assembly x86 gdb elf

为什么GDB不会转到下一条机器指令。在下面的gif中,我将程序计数器设置为指向开始(0x100020),它保存cli指令。但是,当我输入(gdb) stepi时,GDB不会转到下一条指令(0x100021)mov $0x104000,%esp,而是跳转到(0x100023)。

无论我从哪个指令开始,GDB都不会跳转到下一个逻辑指令,而是跳转到看似任意的位置。这是为什么?

enter image description here

1 个答案:

答案 0 :(得分:1)

  

WSL尚未提供32位ELF支持。

请参阅following StackOverfow question

原来WSL是问题,我的elf文件是32位。

修改

虽然上述情况属实,但如果使用QEMU,则可以在WSL中通过GDB进行32位elf调试。就我而言,GDB的表现与上面不同,不是因为它是32位(因为我是通过QEMU运行elf文件),而是因为我的汇编程序生成的代码没有产生GDB理解的调试信息。我正在使用NASM,并且需要-F dwarf-g标志来生成所述调试信息。