4

嗨,我目前正在通过 GDB 在 linux 机器上调试我的代码库。我目前面临从类的对象 ptr 获取数据成员值的问题。要打印对象 ptr 的位置,我们可以使用“p”(打印)或“显示”命令。

例如:我有这样的课

class abc
{
    string a;
};

所以在我的代码中,如果我使用类 abc 的指针,那么

abc* objPtr = new abc();

所以在上面的行中断后,我将得到 objPtr,现在我想检查数据成员 a (abc::a) 值的值。我怎么能这样做?

(gdb) p objPtr
$2 = {px = 0x3ba6430690, pn = {pi_ = 0x3ba6430698}}

此外,是否有不同的方法来检查列表/向量的数据成员?

4

3 回答 3

1

我得到了答案。

$p/a objPtr->datamember->[if datamember also has some data member then we can call it in recurcion / can also call member function].

对于列表/向量,我们可以参考 http://sourceware.org/ml/gdb/2008-02/msg00064/stl-views.gdb

于 2012-05-30T10:36:56.000 回答
0

你可以试试:

$ p abc->c_str()
于 2012-05-30T10:12:05.277 回答
0
p objPtr->a 

将打印变量的数据成员类型和值a

于 2021-04-27T20:14:21.137 回答