在linux下编译程序要用到gdb,我一直记不到几个命令,所以转来一篇讲解gdb命令的帖子,一边随时查找。
作者:yrj 的 Blog
gdb 命令详解
awatch
|
指定一个变量,如果这个变量被读或者被写,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令。
|
backtrace
|
显示函数调用得所有栈框架(stack frames)的 踪迹和当前函数的参数的值,bt是这个命令的简写。
|
break
|
设置一个断点,这个命令需要指定代码行或者函数名作为参数
|
clear
|
删除一个断点,这个命令需要制定代码行或者函数名作为参数
|
continue
|
调试器停止的地方继续执行
|
Ctrl-C
|
在当前位置停止执行正在执行的程序,断点在当前行
|
disable
|
禁止断点功能,这个命令需要禁止的断点在断点列表索引值作为参数
|
display
|
在断点的停止的地方,显示指定的表达式的值。(显示变量)
|
enable
|
允许断点功能,这个命令需要允许的断点在断点列表索引值作为参数
|
finish
|
继续执行,知道当前函数返回
|
ignore
|
忽略某个断点制定的次数。例:ignore 4 23 忽略断点4的23次运行,在第24次的时候中断
|
info breakpoints
|
查看断点信息
|
info display
|
查看设置的需要显示的表达式的信息
|
kill
|
终止当前debug的进程
|
list
|
显示10行代码。如果没有提供参数给这个命令,则从当前行开始显示10行代码。 如果提供了函数名作为参数,则从函数开头显示。如果提供代码行的编号作为参 数,这一行作为开头显示。
|
load
|
动态载入一个可执行文件到调试器。
|
next
|
执行下一行的源代码的所有指令。如果是函数调用,则也当作一行源代码,执行到此函数返回
|
nexti
|
执行下一行的源代码中的一条汇编指令
|
print
|
显示变量的值
|
ptype
|
显示变量的类型
|
return
|
强制从当前函数返回
|
run
|
从程序开始的地方执行
|
rwatch
|
指定一个变量,如果这个变量被读,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令。
|
set
|
设置变量的值。例如:set nval=54 将把54保存到nval变量中
|
step
|
继续执行程序下一行源代码的所有指令。如果是调用函数,这个命令将进入函数的内部,单步执行函数中代码。
|
stepi
|
继续执行程序下一行源代码中的汇编指令。如果是函数调用,这个命令将进入函数的内部,单步执行函数中的汇编代码。
|
txbreak
|
在当前函数的退出的点上设置一个临时的断点(只可使用一次)。
|
undisplay
|
删除一个display设置的变量显示。这个命令需要将display list中的索引做参数。
|
watch
|
指定一个变量,如果这个变量被写,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令。
|
whatis
|
显示变量的值和类型。
|
xbreak
|
在当前函数的退出的点上设置一个断点。
|