我有一些带有调试符号的编译对象文件,但没有访问源。
有没有方法可以将此文件转换为位置无关?
据我了解'-fPIC'标志,它使所有跳跃都是相对的。我想知道是否有调试符号足以修复此跳转,因此创建一个PIC二进制文件。
如果没有,请告诉我为什么不能这样做。
答案 0 :(得分:1)
我认为这个问题是平台而不是编译器特定的,因为不同的平台以不同的方式实现PIC代码。
尽管如此,我不知道任何可以使用简单工具将传统代码转换为独立代码的平台。这是必须在编译/代码生成时做出的决定。实现目标的唯一方法可能是反汇编代码并将每个绝对代码/数据引用修改为相对寻址。
简短的回答是:不,(实际上)不可能。