2024年4月16日发(作者:)

GDB调试命令

常用的gdb命令

backtrace 显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where)

breakpoint 在程序中设置一个断点

cd 改变当前工作目录

clear 删除刚才停止处的断点

commands 命中断点时,列出将要执行的命令

continue 从断点开始继续执行

delete 删除一个断点或监测点;也可与其他命令一起使用

display 程序停止时显示变量和表达时

down 下移栈帧,使得另一个函数成为当前函数

frame 选择下一条continue命令的帧

info 显示与该程序有关的各种信息

jump 在源程序中的另一点开始运行

kill 异常终止在gdb 控制下运行的程序

list 列出相应于正在执行的程序的原文件内容

next 执行下一个源程序行,从而执行其整体中的一个函数

print 显示变量或表达式的值

pwd 显示当前工作目录

pype 显示一个数据结构(如一个结构或C++类)的内容

quit 退出gdb

reverse-search 在源文件中反向搜索正规表达式

run 执行该程序

search 在源文件中搜索正规表达式

set variable 给变量赋值

signal 将一个信号发送到正在运行的进程

step 执行下一个源程序行,必要时进入下一个函数

undisplay display命令的反命令,不要显示表达式

until 结束当前循环

up 上移栈帧,使另一函数成为当前函数

watch 在程序中设置一个监测点(即数据断点)

whatis 显示变量或函数类型

1

GDB调试命令

GDB命令分类详解

一:列文件清单 ................................................................................................................................................2

二:执行程序 ....................................................................................................................................................2

三:显示数据 ....................................................................................................................................................2

四:断点(breakpoint) .........................................................................................................................................3

五.断点的管理 ................................................................................................................................................3

六.变量的检查和赋值 .....................................................................................................................................4

七.单步执行 ....................................................................................................................................................4

八.函数的调用 ................................................................................................................................................4

九.机器语言工具 ............................................................................................................................................4

十.信号 ...........................................................................................................................................................4

十一.原文件的搜索............................................................................................................................................5

十二. UNIX接口 ...............................................................................................................................................5

十三. 命令的历史 .............................................................................................................................................5

十四. GDB帮助 ..............................................................................................................................................5

十五. GDB多线程 ..........................................................................................................................................6

十六. GDB使用范例 ......................................................................................................................................7

一:列文件清单

1. List

(gdb) list line1,line2

二:执行程序

要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输

如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。

利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参

(gdb)set args –b –x

(gdb) show args

入和标准输出说明符(<和>)和外壳通配符 (*、?、[、])在内。

数的列表。

backtrace命令为堆栈提供向后跟踪功能。

Backtrace 命令产生一张列表,包含着从最近的过程开始的所以有效过程和调用这些过程的参数。

三:显示数据

利用print 命令可以检查各个变量的值。

(gdb) print p (p为变量名)

(gdb) whatis p

type = int *

whatis 命令可以显示某个变量的类型

print 是gdb的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达式。表达式除了

包含你程序中的变量外,还可以包含以下内容:

2