功能强大的gdb

来源:互联网 发布:js如何控制光标大小 编辑:程序博客网 时间:2024/05/19 20:39

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。它是学习指针、调试程序非常有用的工具和方法:

一.gdb常用命令:
brakepoint (b) 断点
backtrace(或bt) 查看各级函数调用及参数
finish 连续运行到当前函数返回为止,然后停下来等待命令
frame(或f) 帧编号 选择栈帧
info(或i) locals 查看当前栈帧局部变量的值
list(或l) 列出源代码,接着上次的位置往下列,每次列10行
list 行号 列出从第几行开始的源代码
list 函数名 列出某个函数的源代码
next(或n) 执行下一行语句
print(或p) 打印表达式的值,通过表达式可以修改变量的值或者调用函数
quit(或q) 退出gdb调试环境
set var 修改变量的值
start 开始执行程序,停在main函数第一行语句前面等待命令
step(或s) 执行下一行语句,如果有函数调用则进入到函数中
二、gdb使用例子

这里写图片描述
简单地编译执行下上面的程序#gcc add,c -o add

这里写图片描述
接下来,试用下gdb的命令,先看看help命令
这里写图片描述
help命令可以查看gdb 有哪些命令行及使用规则。
现在看看list的命令
这里写图片描述
由上面可以看出,list 命令一次只能列出十行的源代码,如果要列出十一行后的下面可以直接回车这里写图片描述
在gdb中用b来设置断点,比如设置26行的断点(b 26).c的命令是往下继续执行
这里写图片描述

在gdb调试中,n和s都可以继续往下执行程序,但s如果有函数的话则进入到函数中。这里写图片描述
在gdb可以用printf打印指针的地址,也可以用来改变变量的值