debugging “读什么:警告:范围项目N”mean?中的偏移量已损坏,

7uhlpewt  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(139)

我在我的(C++)可执行文件上运行readelf -w来检查一些调试部分,它几次输出以下警告:

$ readelf -w a.out
...
readelf: Warning: Corrupt offset (0x00000028) in range entry 1
readelf: Warning: Corrupt offset (0x00000044) in range entry 2
readelf: Warning: Corrupt offset (0x00000054) in range entry 3
...

我不知道这是什么意思,手册页和谷歌都帮不上忙。有没有人能启发我?

q43xntqr

q43xntqr1#

错误来自dwarf.c,如下所示:

for (i = 0; i < num_range_list; i++)
...
      if (offset > (size_t) (finish - section_begin))
        {
          warn (_("Corrupt offset (%#" PRIx64 ") in range entry %u\n"),
                offset, i);
          continue;
        }

如果不看readelf --all的输出,很难说这意味着什么。可能是您的编译器产生了错误的调试信息,但也可能是readelf中的bug,可能是this one
您可以尝试使用elfutils包中的eu-readelf,它看起来维护得更好。

相关问题