Assembly 使用gdb精确查找错误发生的位置(SPARC汇编)
我正试图使用gdb调试我的汇编子程序,但在确定程序的具体故障位置时遇到了问题 我运行它,直到它到达SEGFULT,然后使用“where”命令,该命令给出:Assembly 使用gdb精确查找错误发生的位置(SPARC汇编),assembly,gdb,sparc,Assembly,Gdb,Sparc,我正试图使用gdb调试我的汇编子程序,但在确定程序的具体故障位置时遇到了问题 我运行它,直到它到达SEGFULT,然后使用“where”命令,该命令给出: 0x00010e40 in swapChars() 有没有办法让我弄清楚在我的子程序中segfault发生在哪一行 有没有办法让我弄清楚在我的子程序中segfault发生在哪一行 是:您需要使用调试信息编译程序(您提供的输出显示您可能没有) 通常这只需将-g添加到CFLAGS中即可 有时程序缺少调试信息,因为链接行上有一个杂散的-s(str
0x00010e40 in swapChars()
有没有办法让我弄清楚在我的子程序中segfault发生在哪一行
有没有办法让我弄清楚在我的子程序中segfault发生在哪一行
是:您需要使用调试信息编译程序(您提供的输出显示您可能没有)
通常这只需将-g
添加到CFLAGS
中即可
有时程序缺少调试信息,因为链接行上有一个杂散的
-s
(strip debug info)标志。在gdb中,使用命令“layout asm”,它将切换到汇编代码视图。然后您应该能够准确地看到导致故障的指令。x/i$pc
将显示当前指令。如果需要,您还可以要求提供更多的上下文,请参阅帮助。对此,您不需要调试信息。