gpt4 book ai didi

c - 调试文件格式困惑: ELF/BIN

转载 作者:行者123 更新时间:2023-12-04 10:29:46 25 4
gpt4 key购买 nike

我目前正在使用一些 µC 系统,我想更深入地了解细节以了解下面发生的事情。我目前正在使用 Motorola Coldfire 和 ARM 9。对于这两者,我都使用 GCC 工具链作为交叉编译器!

ELF 文件包含的信息多于应用程序运行所需的信息!不过,一个 BIN 文件就足够了!我知道 ELF 格式保留了一些额外的信息。它连接符号和它们在内存中的地址,对吗?是仅用于软件调试器(例如 GDB)的额外信息还是其中一些信息也被传输到目标设备?因此,如果遇到断点,片上调试器会告诉主机相关地址,而软件调试器可以向我显示相关代码部分,而不是仅仅显示无聊的内存地址?我可以只使用 BIN 文件进行调试吗(好吧,这很愚蠢,但基本上是这样吗?)?

感谢有关此主题的一些启发!

想你

最佳答案

您说得对,ELF 文件包含额外信息,例如用于调试的符号。通常在 µC 环境中,您将使用 BIN 文件在处理器上执行(通常加载到闪存中),然后将 ELF 文件传递​​给 GDB 进行调试。在您的开发 PC 上运行交叉编译的 GDB 时,它将使用 ELF 文件作为引用(因此它知道代码行号、变量名等),但它会与片上调试器通信以读取内存位置、设置断点等。要让 GDB 与片上调试器通信,您可以在 GDB 中使用 target remote 命令,传递任何必要的参数(通常是网络地址和端口的串行端口)。

关于c - 调试文件格式困惑: ELF/BIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790830/

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