如何在 gdb 中获取数据成员的值
How to get value of a data member in gdb?
嗨,我目前正在通过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}}
此外,是否有其他方法来检查数据成员,即列表/向量?
我得到了答案。
$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。
你可以试试:
$ p abc->c_str()
p objPtr->a
将打印变量a
的数据成员类型和值
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 数据成员SFINAE的C++17测试:gcc vs clang
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 如何在c++中定义以struct为数据成员的类中的构造函数
- 静态数据成员模板专用化的实例化点在哪里
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 使用指针访问数组中的对象数据成员
- 友元函数无法访问私有数据成员 (c++)
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 在C 中获取Invalig使用非静态数据成员错误
- 如何在 c++ 中从对象数组中获取数据成员数组
- 实例是否应该使用资源库/获取器来访问自己的私有数据成员
- 从数据成员(一次性嵌套类)中获取非 POD 对象的地址
- 按名称获取指向数据成员的指针
- 如何在 gdb 中获取数据成员的值
- 字符串数据成员的指针错误 - 获取访问冲突
- 需要获取结构数据成员的偏移量
- 获取用于非侵入性提升序列化C++的私有数据成员
- c++继承.获取基类的数据成员值