2012-07-09 106 views
3

我正在与一个项目交给我,一些建筑和连接概念对我来说是新的。我有一个makefile,几个汇编和C源文件,一个ELF文件和二进制文件。当我将ELF文件加载到目标上时,我只能够遍历C文件,而不是汇编文件。ELF符号表中缺少源文件 - 如何包含它们?

当我在ELF文件上执行readelf时,发现程序集(.S)文件在符号表中缺失。同样,我的调试器(RealView Debugger 4.1)不会在“源图像”树中列出这些.S文件。我可以看到这些文件中的一些符号包含在我的readelf输出中(即标签名称),但不包括文件类型符号本身。我一直在检查makefile以试图找出可能无法包含它们的内容,但我不确定我在找什么。任何人都可以请我指出正确的方向?谢谢!

+1

检查您是否将Makefile中的-g选项传递给了armasm。 – 2012-07-09 18:07:38

+0

@PeteFordham,谢谢,我没有检查,我用汇编语言和C编译器都使用-g。 – Rich 2012-07-09 18:31:50

回答

1

您提到使用RealView调试器,所以我正在进行有教育的猜测,您有RVDS。如果是这样,你是否尝试过使用RVDS附带的readelf等价物fromelf。我现在无法确认这一点,但我记得ARM编译器生成的汇编代码和gcc之间存在细微的差异。