标签:
GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。
gdb : 运行gdb调试程序
file <文件名>: 加载被调试的可执行程序文件。
run(简写r): 运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。
continue(简写c): 继续执行,到下一个断点处(或运行结束)
next(简写n): 单步跟踪程序,当遇到函数调用时,直接调用,不进入此函数体;
step(简写s): 单步调试如果有函数调用,则进入函数;与命令n不同,n是不进入调用的函数的
【这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数)。】
si,ni : si命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni)所针对的是汇编指令,而s/n针对的是源代码。
until: 运行程序直到退出循环体; / until+行号: 运行至某行
finish: 运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数值等信息。
call 函数(参数): 调用“函数”,并传递“参数”,如:call gdb_test(55)
quit: 简记为 q ,退出gdb
2、设置断点
b: Breakpoint的简写,设置断点。可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。
delete 断点号n:删除第n个断点
disable 断点号n:暂停第n个断点
enable 断点号n:开启第n个断点
clear 行号n:清除第n行的断点
info breakpoints (简写info b) :显示当前程序的断点设置情况
list (简写l):列出程序的源代码,默认每次显示10行。
list行号: 将显示当前文件以“行号”为中心的前后10行代码,如:list 12
list 函数名: 将显示“函数名”所在函数的源代码,如:list main
list : 不带参数,将接着上一次 list 命令的,输出下边的内容。
p <变量名称> Print的简写,显示指定变量(临时变量或全局变量)的值。
display 表达式: 在单步运行时将非常有用,使用display命令设置一个表达式后,它将在每次单步进行指令后,紧接着输出被设置的表达式及值。如:display a
watch 表达式: 设置一个监视点,一旦被监视的“表达式”的值改变,gdb将强行终止正在被调试的程序。如: watch a
where/bt : 当前运行的堆栈列表
set args 参数: 指定运行时的参数
show args: 查看设置好的参数
info program: 来查看程序的是否在运行,进程号,被暂停的原因
layout: 用于分割窗口,可以一边查看代码,一边测试:
layout src: 显示源代码窗口
layout asm: 显示反汇编窗口
layout regs: 显示源代码/反汇编和CPU寄存器窗口
layout split: 显示源代码和反汇编窗口
Ctrl + L: 刷新窗口
标签:
原文地址:http://www.cnblogs.com/tyomcat/p/5796270.html