GDB调试指南)
GDB
GBD概念
基于gcc的debug调试。
GDB是GUN开源组织发布的一款强大的unix/linux下所谓程序调试工具。
GDB主要功能
1、启动程序,按照程序员的要求运行程序。
2、可以让程序在程序员设置的断点处停下来。
3、在重新停止的情况下,可以查看重新中的变量等信息。
4、动态改变程序的运行环境
需要注意的是:
程序在编译的时候需要跟上-g参数,因为我们默认编译出来的版本是发布版本(Release),会删除一切调试可用信息,便于减小可执行程序的体积,但是我们调试的时候,我们需要保留调试信息,所以需要使用到调试版本(DeBug),所以需要指定参数-g.
GDB的启动
GDB常见的启动方式
在命令行中运行:
(1)gdb:
file <filename>
如果调试的程序需要命令行参数还需要执行如下指令:
set args arg1 arg2 ...
(2) gdb <filename> ;
如果调试的程序需要命令行参数则执行如下格式指令:
gdb --args <filename> arg1 arg2 ...
GDB的常用命令
GDB 查看源代码指令------list (l)
set listsize 20 #每次list显示指定区域的20行代码,默认10行
show listsizelist linenumber # 显示 linenumber附近的代码
list 50 # 显示当前源文件的第50行的附近代码
list function # 显示函数代码
list test.c:30 # 显示指定源文件的第30行的附近代码
list +/- # 向后/前显示源代码
list <first>,<last> # 显示first ,last之间的内容
list 100,200 # 显示当前源文件代码行100到200间的行
GDB 查看设置------info
info registers # 查看寄存器信息
info frame # 查看栈信息(帧信息)
info locals # 显示当前函数的所有局部变量名及其值
info break/b # 查看断点信息
info args # 显示当前函数的参数名及其值
info prog # 查看调试程序的执行状态
info files