我通过带有调试信息的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:
使用普通llvm-dwarfdump objfile
转储会稍微详细一些:
.debug_ranges contents:
00000000 <End of list>
00000010 <End of list>
00000020 <End of list>
因此,似乎数据写入成功但未正确读取。任何可能导致这种情况的想法以及如何解决?
我使用LLVM 3.2生成了目标文件,并从3.2和top-of-trunk中尝试了llvm-dwarfdump
。