您的位置:首页 > 其它

Gdb常用命令

2012-03-14 22:02 267 查看
Gdb命令:

调用Gdb编译需要在CC后面加上-g 参数再加-o

启动Gdb:#gdb

(gdb)I 从第一行开始列出源码

(gdb)break n 在第n行处设置断点

(gdb)break func 在函数func()的入口处设置断点

(gdb)info break 查看断点信息

(gdb)run 运行程序

(gdb)next 单步执行

(gdb)continue 继续运行

(gdb)print 变量 打印变量的值

(gdb)break tusk 查看函数堆栈

(gdb)finish 退出函数

(gdb)shell 命令行 执行shell命令

(gdb)set args 参数 指定运行时的参数

(gdb)show args 查看设置好的参数

(gdb)show paths 查看程序运行路径

Info program 查看程序是否在运行,进程号,被暂停的原因

Clear n 清除第N行的断点

Delete n 删除第N行的断点

Disable n 暂停第n行的断点

Enable n 与disable 相反

Step 单步调试,如果有函数调用,进入函数,与next不同,next 不进入被调用的函数

List 1,行号 将显示当前文件以行号为中心的前后10行代码

2,函数名 将显示函数名所在函数的源代码

3,不带参数 讲接着上一次list命令的,输出下边的内容。

回车: 重复上一条命令

Break 1,break 行号 在当前文件的行号处设置断点

2,break 函数名 在用户定义的函数“函数名”处设置断点

3,infobreakpoints 显示当前程序的断点设置情况

4,disablebreakpoints N

5,enable breakpoints N

Until 当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体

Finish 运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数值等信息

Print 1,print a 将显示整数a的值

2,print ++a 将把a的值加1,并显示出来

3,print name 显示字符串name的值

4,printfunc(args) 将显示以参数args调用func 函数

Bt 显示当前程序的函数调用堆栈

Display 表达式在单步运行时将非常有用,使用display设置一个表达式后,它将在每次单步进行指令后,紧接着输出被设置的表达式及值

Watch 表达式 设置一个监视点,一旦被监视的“表达式”的值改变,gdb将强行终止正在被调试的程序

Kill 将强行终止当前正在调试的程序

Help 命令 将显示该命令的常用帮助信息

Call func(args) 以参数调用函数

Layout 用于分割窗口,可以一边查看代码,一边测试

Layout src 显示源代码窗口

Layoutasm 显示反汇编窗口

Layout regs 显示源代码/反汇编和CPU寄存器窗口

Layout split 显示源代码和反汇编窗口

Ctrl+L 刷新窗口

Quit 退出gdb

Condition 断点号 条件表达式 在满足条件时才在制定的行上设置断点

Ignore 这条命令在一定范围内忽略用户设定的断点

Info display 用于显示当前所有要显示值的表达式的有关情况

Forward 从列表当前行开始向后查找第一个匹配某个字符串的程序行

Load 用于动态的向正在调试的程序中装入文件,并记录它的符号表,准备联接

Pwd 显示当前工作路径

Handle 信号 信号处理 对信号设置处理函数

Nexti 用于单步执行一条语句中的一条指令,next用于单步执行一条语句,一条语句可能有几条指令构成

Stepi 用于执行一条指令的,它不越过子程序的调用,而是跟踪到子过程的内部

关于堆栈的命令:backtrace 个数 用来打印栈侦指针的,

Frame 要打印的编号 用于打印栈侦的

Select-frame 指定要选择的栈侦的编号,一般于info frame 连用

Info reg 查看寄存器使用情况

Info stack 查看堆栈

Where 查看当前位置

Up 跳到上一层函数

Down 与up 相对

Attach <进程号> 把当前高度的程序粘在某个进程上,用于调试运行中的进程

Ptype <变量或数据类型> 查看变量或数据类型的定义
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: