在ELF文件中找不到.debug_str?

时间:2013-04-21 05:58:33

标签: c++ gcc elf

我正在做一个适用于ELF文件的项目。现在我使用以下作为示例输入 -

class C {
public:
    C();
    C(int x, int y);
    int getX();
private:
    int x;
    int y;
};

class SubC : public C {
    int z;
};

int f() {return 0;}

C c;
SubC subC;

int i;
double d;
然后我跑

gcc test.cpp -g -c -o test.o

我按预期得到test.o。然后我将test.o提供给我发现的名为peter-dwarf的库。我的问题是该库说“在test.o中找不到部分.debug_str”

编译时我做错了什么?或者图书馆不工作?

编辑:应该是那里的-g

2 个答案:

答案 0 :(得分:1)

在gcc中使用-g生成调试符号。您还可以参考gcc here的调试选项文档。

如果您的系统以某种方式配置,则-g可能不包含DWARF信息。有一些与DWARF相关的开关具体,所以如果单独-g不起作用,您可能需要去那里并与其他开关一起使用。

答案 1 :(得分:0)

您可能需要在启用调试信息的情况下进行编译。尝试:

gcc -g test.cpp -c -o test.o