如何显示一个结构在gdb中的字段?
我在gdb会话中遇到了一个名为ngx_http_variable_value_t
的结构,我想打印它在控制台中的字段。 那可能吗?
您可以使用gdb命令“ptype”打印出结构或类的定义。
如果你有内置的debugging符号,你应该能够打印值: print variable
或print *variable
如果它是一个指向结构的指针。
除了使用命令行选项外,还可以使用graphicsdebugging器。 我build议gdbgui ,但那里有不less。
免责声明:我是gdbgui的开发者
set print pretty on
此选项还为p *my_struct_pointer
提供换行和缩进。
你喜欢哪个:
$2 = {path = {mnt = 0xffff8800070ce1a0, dentry = 0xffff880006850600},last = {{{hash = 3537271320, len = 2}, hash_len = 12127205912}, name = 0xffff88000659501c "../b.out"}
要么:
$3 = { path = { mnt = 0xffff8800070ce1a0, dentry = 0xffff880006850600 }, last = { { { hash = 3537271320, len = 2 }, hash_len = 12127205912 }, name = 0xffff88000659501c "../b.out" }, }
我只通过gdb的graphics前端完成了这一点。 在gdb在线文档中find这个条目。 希望能帮助到你。 我相信这将要求代码是在包含debugging信息的情况下创build的。
ptype [arg] ptype接受与whatis相同的参数,但会打印该types的详细说明,而不仅仅是types的名称。
用GDBdebugging:符号
我会看看数据显示debugging器 。