小编use*_*047的帖子

GDB警告:找不到类的RTTI符号

我将Eclipse与GDB一起使用.对于我有的任何智能指针类,例如MyString,我一直都在

警告:找不到类MyString的RTTI符号

事实上,我看不到智能指针容器所持有的值:

MyString str = "test"; //can see "test" fine when examining variable value
MyStringPtr strPtr = &str; //can not see "test" contained by the container strPtr when examining variable value.
Run Code Online (Sandbox Code Playgroud)

我认为警告是原因,指向"test"的指针变为void指针而不是MyString的类型指针.尽管如此,这有效:

int L = strPtr->length(); //correctly is 4
char c = strPtr->charAt(1); //correctly is 'e'.
Run Code Online (Sandbox Code Playgroud)

所以GDB似乎正在正确处理事情,但并不完美,所以我无法调试.

我应该提一下在Visual Studio中进行开发时没有问题.只有使用Cygwin g ++的Eclipse才会出现问题.

Cygwin g ++编译选项:-O0 -g3 -Wall -c -fmessage-length = 0

以下是相关课程的简化草图.

[码]

class MyObjectPtr
{
protected:
    MyObject* pObj;
public:

    MyObjectPtr(MyObject* p= 0);
    MyObjectPtr(const MyObjectPtr& r);

    ~MyObjectPtr();

protected:
    void set(MyObject* …
Run Code Online (Sandbox Code Playgroud)

c++ eclipse gdb smart-pointers rtti

5
推荐指数
0
解决办法
9788
查看次数

标签 统计

c++ ×1

eclipse ×1

gdb ×1

rtti ×1

smart-pointers ×1