【发布时间】:2011-04-25 16:22:14
【问题描述】:
我正在尝试以一种干净的方式在 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 支持?
【问题讨论】: