test4 中使用命令objdump -d testcases/test4/test4 | grep '<main>:' -A 8
输出结果与预期输出相同,而使用命令objdump -d testcases/test4/test4 | grep '<foo>:' -A 8
与预期输出不同,输出结果如下,请问出现这种情况是因为在 handleRela 里面处理多个目标文件发生错误,还是 resolve 里面符号的解析实现失败?
从 114d
处连续的 4 个字节都为 0 来看,foo
中引用变量a
没有在它应该在的地方被重定位。我的建议是在处理每一个RelocEntry
时都将对应的地址打印出来,看看到底是往内存的哪个地方写了。