gpt4 book ai didi

linux - 没有 gcc 的 gdb

转载 作者:IT王子 更新时间:2023-10-29 00:54:26 24 4
gpt4 key购买 nike

是否可以使用用 as 组装并用 ld 链接的程序来运行 GDB?使用 gcc 添加标志 -g 允许调试,但我得到错误 No symbol table is loaded。当我尝试向加载的程序添加断点时,使用"file"命令

谢谢!

编辑 也许我应该明确表示我正在学习和编程汇编。我真正想要的只是堆栈跟踪,但能够使用 GDB 会很棒。

解决方案 运行 as -g 即可。

谢谢大家的回答!!

最佳答案

这是可能的。但是,您需要符号才能添加符号断点,符号由调试信息提供;确保您的汇编器和链接器提供这些。 编辑 对于 GNU as,使用 as -g。或者只使用 gcc -g:如果你给它一个 .s 文件,它会调用适当的汇编器和链接器。

GDB 理解多种格式的调试信息:stabs , COFF , PE , DWARF , SOM . (其中一些是带有调试部分的可执行格式,其他是可以嵌入到可执行文件中的调试信息格式,例如 ELF。)gcc -g 通常选择平台的默认值,gcc -ggdb 通常选择最具表现力的(取决于您的版本,可能是 DWARF-3)。

如果您在可执行文件中嵌入或链接了调试信息,gdb 将尝试自动加载它。如果您在其他地方有它,您可能需要使用 file 来告诉 gdb 在哪里可以找到它。

您仍然可以在没有符号信息的情况下进行调试。例如,如果那里有任何代码,您可以发出 break *0x89abcdef 以在该地址插入断点。

关于linux - 没有 gcc 的 gdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2114934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com