我已经通过 MCJIT 生成了一个带有调试信息的 ELF 对象,但是当我在 LLVM 中读回它时,它会发现一个空debug_ranges
部分,即使那里应该有数据。我已将目标文件转储到磁盘,实际上:
$ readelf -wR objfile
Contents of the .debug_ranges section:
Offset Begin End
00000000 0000000000000089 00000000000000b6
00000000 0000000000000120 0000000000000150
00000000 <End of list>
$ llvm-dwarfdump --debug-dump=ranges objfile
objfile: file format ELF64-x86-64
.debug_ranges contents:
用plain 倾倒llvm-dwarfdump objfile
给出了稍微更详细的信息:
.debug_ranges contents:
00000000 <End of list>
00000010 <End of list>
00000020 <End of list>
所以看起来数据写入成功但没有正确读取。有什么想法会导致这种情况,我该如何解决?
我使用 LLVM 3.2 生成了目标文件,并尝试llvm-dwarfdump
了 3.2 和 top-of-trunk。