使用调试选项时,侏儒转储为空

dwarfdump is empty when using debug options

本文关键字:转储 调试 选项      更新时间:2023-10-16

我正试图使用侏儒转储从C++文件中获取DWARF信息。C++文件非常简单-

int foo();

我通过g++ -g -c test.cpp编译它。然后我做dwarfdump test.o,但由于某种原因,我得到了

----------------------------------------------------------------------
 File: test.o (x86_64)
----------------------------------------------------------------------
.debug_info contents:
< EMPTY >

为什么会这样?如何获取调试侏儒信息?

我发现了问题所在。未生成调试信息。这是因为优化器实现了int foo();从未被调用,也没有声明,因此不需要调试信息。将功能更改为

int foo(){
    int x=5;
}

足以生成调试信息。