调试文件格式混乱:ELF/BIN

4

我目前正在处理一些微控制器系统,希望更深入地了解底层的情况。我正在使用Motorola Coldfire和ARM 9,对于这两个系统,我都使用GCC工具链作为交叉编译器!

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

欢迎对此话题进行启示!

谢谢

1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接