我编写了一个简单的 c 语言程序,它没有额外的功能代码和库依赖:
void main()
{
}
将它保存为“Test.c”,我用“arm-linux-gcc”为arm架构师编译它并输出一个elf格式文件“Test”,命令是“ arm-linux-gcc Test.c -o Test -static ”。然后我使用功率模拟器工具“Sim-Panalyzer”估算文件“Test”的功率,回显信息显示“ fatal:non-speculative fault (2) detected @ 0x00013c58 ”。所以我使用命令“ readelf -S Test ”并找到地址在段“.text”中,然后使用命令“ arm-linux-objdump Test -Sl -j .text > a.txt ”将信息输出到文件“a.txt”。我在这里找到地址并了解信息:
13c48: 1affffd4 bne 13ba0 <_dl_aux_init+0x8c>
13c4c: e352000f cmp r2, #15
13c50: e59d201c ldr r2, [sp, #28]
13c54: e59d3018 ldr r3, [sp, #24]
13c58: e5892000 str r2, [r9]
很明显,错误发生在 gcc 库“glibc-2.9/elf/dl-support.c”中的函数“ dl_aux_init ”中,但我不知道如何处理这个错误。我不敢相信glibc中的错误,所以我希望有人能帮我找到导致这个错误的原因。使用“Sim-Panalyzer”有什么问题吗?