按:
了解基本的命令总比被IDE完全包装之后更能让开发人员更深入的了解调试器,所以转贴一篇文章。
关于断点的命令:
awatch 用来为一个表达式设置观察点,在表达式的值发生改变时,或者是当表达式的值
被度曲的时候,程序都会停止运行。
格式:awatch 要设置观察点的表达式
break 用来设置断点。
格式:break 要设置断点的行号
clear 清除断点。
格式:clear 要清楚的断点所在的行号
commands 在遇到断点之后执行特定指令而设。
格式:commands 断点号。
condition 在满足一定条件时才在指定的行上设置断点。
格式:condition 断点编号 条件表达式
delete 清楚断点或自动显示的表达式。
格式:delete 断点的编号或者表达式
disable 使断点暂时失效。
格式:disable 断点编号
enable 恢复暂时失效的断点。
格式:enable 断点编号
ignore 在一定范围内,忽略用户设置的断点。
格式:ignore N CONT
tbreak 设置临时断点。作用一次。
格式:tbreak 设置临时断点的行号
watch 为一个表达式设置观察点。当表达式的值发生改变时,程序就会停止运行。
格式:watch 要设置观察点的表达式
关于数据的命令:
display 用来显示一些表达式的值
格式:display 要显示值的表达式
info display 显示当前所有的要显示值得表达式的有关情况。
格式:info display
delete display 删除一个要显示值得表达式。
格式:delete display 删除显示的表达式的编号
disable display 暂时屏蔽那些不需要显示的表达式。
格式:disalbe display 屏蔽显示的表达式的编号
enable display 使显示值被屏蔽的表达式恢复显示。
格式:enable display 需要显示的表达式的编号
undisplay 结束某个表达式值的显示。
格式:undisplay 不需要再显示值的表达式
whatis 显示某个表达式的数据类型。
格式:whatis 需要查询类型的表达式
print 打印表达式值,也可以用来打印内存中从某个变量开始的一段区域的内容。
格式:print 需打印的表达式
ptype 用来给出类型定义
格式:ptype 参数
set 用来为变量赋值的
格式:set 变量=表达式
关于文件的命令:
add-shared-symbol-files 用来从动态的连接映射的共享目标文件中装入符号表。
add-symbol-file 用来从已经动态装入的文件中装入符号表。
格式:add-symbol-file FILE ADDR
cd 用来改变当前工作目录的。
core-file 使某个文件成为core dump,从而可以检查内存和寄存器。
directory 用来向源文件搜索路径中增加一个目录。
格式:directory 要增加的目录
file 命令是用来装入待调试程序的命令。
格式:file 要装入的文件的名称
list 用来进行文件内容列表
list命令可使用的非空的参数有以下几种方式:
LINENUM:当前文件的LINENUM行;
FILE:LINENUM:指定文件的LINENUM行;
FUNCTION:当前文件的FUNCTION函数;
FILE:FUNCTION:指定文件的FUNCTION函数;
*ADDRESS:列出包含该地址的文件。
格式:list 要列表的开始行号
forward 用来从列表当前行开始向后查找第一个匹配某个字符串的程序行。
格式:forward 要匹配的字符串
load 用来动态的往正在调试的程序中装入文件,并记录它的符号表,准备连接。
格式:load 准备装入的文件名称
path 用来向目标文件的搜索路径中增加目录的。
格式:path 要增加到搜索路径中的目录名称
reverse-search 从列表当前行开始向前查找第一个匹配某个字符串的程序行。
search 和forward 命令的用法是完全一致的。
关于程序运行的命令:
cont 使程序字信号发生后或是停在断点之后再继续运行。
handle 用来对信号设置处理函数的。
格式:handle 信号 信号处理
jump 用来指定程序开始调试的指令或地址的。
格式:jump 行号或是指令地址
kill 用来结束当前程序的调试。
格式:kill
next 用来继续程序的运行的,它越过子程序调用。
格式:next N 或是空
nexti 用来单步执行一条指令的。
step 用来执行一条语句,它也不越过子程序的调用,而是跟踪到子程序内部。
stepi 用来执行一条指令,它也不越过子程序的调用,而是跟踪到子程序内部。
关于堆栈的命令:
backtrace 用来打印栈桢(stack frame)指针的,他的使用格式和功能和比命令完全相同
。
格式:backtrace 要打印出来的栈桢指针的个数
frame 用来打印栈桢的。
格式:frame 要打印的栈桢的编号
select-frame 用来指定要选择的栈桢的编号。
本人学习/复习GDB时写的命令总结。。。希望对各位有所帮助。
Written by choatrue