首页 > 解决方案 > 使用python api在gdb中列出值的成员

问题描述

我正在尝试找到一种方法来从 GDB 中的 python api 获取 c++ 类对象的成员列表。

到目前为止,我能找到的唯一解决方案是使用ptype <value>然后尝试为成员解析它,我想知道是否有更好的方法我找不到。

标签: c++gdbgdb-python

解决方案


如果你有一个被调用的值,my_name你可以通过

val = gdb.parse_and_eval('my_name') #converts it to a gdb value 

for field in val.type.fields():
        return field.name, val[field.name]
# this gives you the member name and the gdb value.

有关 gdb.Types 的更多信息在这里

如果它是成员函数,我不知道如何得到它


推荐阅读