在GDB中打印出GHashTable

| 我正在尝试以干净的方式在GDB中打印出GHashTable。我在Archer项目上找到了一个博客,该博客显示了很好地打印GHashTable的功能: http://blogs.gnome.org/alexl/2009/09/21/archer-gdb-macros-for-glib/ 据我了解,该Archer项目功能已推入GDB主流。 在GDB中,我这样做:
set print pretty on
然后我尝试打印出哈希表,但它仍然只给我一个内存地址:
(gdb) print call_data->fields->field_indicies
$3 = (GHashTable *) 0x87f4580
如果尝试取消引用GDB中的指针,则会得到不完整的类型:
(gdb) print *call_data->fields->field_indicies
$2 = <incomplete type>
我正在运行Ubuntu,并且已安装libglib2.0-0-dbg:
gnychis@qc2:~/Documents/wireshark_native$ sudo apt-get install libglib2.0-0-dbg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libglib2.0-0-dbg is already the newest version.
有谁知道我还能打印出来吗?还是为什么我没有适当的glib和gdb支持?     
已邀请:
要使Python漂亮的打印机工作,需要满足以下两点: 一个GDB,它支持Python漂亮打印机和 实际的Python代码可完美打印所需的类型 第一部分应该适用于最新的Linux发行版(Archer分支已合并到GDB 7.0中,因此,如果您使用7.0或更高版本的GDB,应该没问题)。 第二部分要求您安装漂亮的打印机,以便GDB可以找到它。您可能会错过该部分。 最终,GDB能够自行自动地找到漂亮的打印机,但是该功能是较新的(我认为这仅在GDB 7.2中),并且需要GLIB维护人员分发带有ѭ4distribute的漂亮打印机,(我猜)他们尚未完成。 您可以检查:
dpkg -L libglib2.0-0-dbg | grep \'\\.py$\'
。如果未列出任何“ 6”个文件,则缺少漂亮的打印机。如果是这样,它们可能存在,但是GDB找不到它们。 似乎已在此处添加了用于GHashTable的漂亮打印机。     

要回复问题请先登录注册