快速业务通道

Linux下编程工具的使用(5) - GDB调试工具(2)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-30
查看运行时数据
七、设置显示选项

GDB中关于显示的选项比较多,这里我只例举大多数常用的选项.

set print address,set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址.

系统默认为打开的,如:
(gdb) f
#0 set_quotes (lq=0x34c78 "<<", rq=0x34c88 ">>")
at input.c:530
530 if (lquote != def_lquote)

set print address off 关闭函数的参数地址显示,如:
(gdb) set print addr off
(gdb) f
#0 set_quotes (lq="<<", rq=">>") at input.c:530
530 if (lquote != def_lquote)

show print address 查看当前地址显示选项是否打开.
set print array,set print array on 打开数组显示,打开后当数组显示时,每个元素占一行,如果不打开的话,每个元素则以逗号分隔.这个选项默认是关闭的.与之相关的两个命令是:set print array off,show print array

set print elements <number-of-elements> 这个选项主要是设置数组的,如果你的数组太大了,那么就可以指定一个<number-of-elements>来指定数据显示的最大长度,当到达这个长度时,GDB不再往下显示.如果设置为0,则表示不限制.
show print elements 查看print elements的选项信息.
set print null-stop <on/off> 如果打开了这个选项,那么当显示字符串时,遇到结束符则停止显示.这个选项默认为off.
set print pretty on 如果打开printf pretty这个选项,那么当GDB显示结构体时会比较漂亮.如:
Empire CMS,phome.net


$1 = {
next = 0x0,
flags = {
sweet = 1,
sour = 1
},
meat = 0x54 "Pork"
}

set print pretty off 关闭printf pretty这个选项,GDB显示结构体时会如下显示:
$1 = {next = 0x0, flags = {sweet = 1, sour = 1}, meat = 0x54 "Pork"}
show print pretty 查看GDB是如何显示结构体的.
set print sevenbit-strings <on/off> 设置字符是否按“nnn”的格式显示,打开则字符串或字符数组按nnn显示,如“65”.
show print sevenbit-strings 查看字符显示开关是否打开.
set print union <on/off> 设置显示结构体时,是否显式其内的联合体数据.例如有以下数据结构:
typedef enum {Tree, Bug} Species;
typedef enum {Big_tree, Acorn, Seedling} Tree_forms;
typedef enum {Caterpillar, Cocoon, Butterfly} Bug_forms;
struct thing {
Species it;
union {
Tree_forms tree;
Bug_forms bug;
} form;
};
struct thing foo = {Tree, {Acorn}};

当打开这个开关时,执行 p foo 命令后,会如下显示:
$1 = {it = Tree, form = {tree = Acorn, bug = Cocoon}}
当关闭这个开关时,执行 p foo 命令后,会如下显示:
$1 = {it = Tree, form = {...}}

show print union 查看联合体数据的显示方式
set print object <on/off> 在C 中,如果一个对象指针指向其派生类,如果打开这个选项,GDB会自动按照虚方法调用的规则显示输出,如果关闭这个选项的话,GDB就不管虚函数表了.这个选项默认是off.
Empire CMS,phome.net

show print object

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号