用于索引结构成员的GDB命令

时间:2017-04-14 15:32:45

标签: python gdb

我的结构有几个成员,我希望看到它们都按顺序编制索引。

Struct Ant 
{
   int type; 
   char name[100];
   long long int food;
}

现在,当我在gdb中执行命令时

(gdb) ptype struct Ant 
$1 = struct 
{  
   int type; 
   char name[100];
   long long int food;
}

我希望看到输出类似

{
  0,  int type; 
  1,  char name[100];
  2,  long long int food;
}

有没有办法在GDB中按顺序获取每个结构字段的索引?

1 个答案:

答案 0 :(得分:1)

没有内置方法可以做到这一点。如果你需要这个,你可以通过几种方式自己编写。

一种方法是使用gdb CLI:使用set logging和朋友将ptype输出转储到文件,然后使用shell在文件上运行其他命令按照你喜欢的方式格式化。

另一种方法是使用gdb的Python脚本功能来检查类型并按照您喜欢的方式显示它。如果您搜索pahole命令(可能已在您的系统上,请尝试locate pahole.py - 某些Linux发行版发布此内容)您可以看到如何完成此操作的示例。