linux中的gdb调试

gdb是在程序运行的结果与预期不符合时,可以使用gdb进行调试

注意:使用gdb调试时要在编译上加-g参数

gcc -g -c hello.c

启动gdb调试:

gdb file   对gdb进行调试

设置运行参数:

set args   可指定运行参数

show args 可以查看设置好的运行参数。

启动程序:

run:程序开始执行,如果有断点,停在第一个断点处。

start:程序开始向下执行下一行(在第一条语句停止)

显示源代码:
 list显示的是源代码

linux中的gdb调试_第1张图片

list - 回到当前文件开头

list line :打印源代码第line行的上下文内容

list  func:打印源代码中func函数的内容

list file:1   打印file文件第一行的上下文内容

linux中的gdb调试_第2张图片

list file:func  打印file文件func函数的内容

当前文件已经是add.c:

linux中的gdb调试_第3张图片

一般来说:

打印当前行的上五行,下五行,显示函数则是上两行,下八行。默认是十行。

我们也可以自行更改:

set listsize count :设置一次显示源代码的行数

show listsize: 查看listsize的设置

断点操作:

b line 在第line行设置断点

b func  在func函数处设置断点

b file:line

b file:func

i b 查看断点信息

linux中的gdb调试_第4张图片

disable n 使n号断点无效

 enable m 使n号断点有效

linux中的gdb调试_第5张图片

delete n 删除n号断点

条件断点:

b file:8 if val== 5   在file文件第八行当val等于5时断点

调试代码:
 

next 单步跟踪,函数调用当作一条简单语句,不会进入函数体

step 单步跟踪,会进入函数体内

finish 退出进入的函数(退不出,删除函数内的断点)

until  在一个循环体单步跟踪时,这个命令可以运行程序直到退出循环体(退不出,删除循环内的断点)

continue 继续运行程序(若有断点跳到下一个断点) 

打印变量:

print count  打印count 的值

自动显示:

display 变量名

i display 显示自动显示变量的信息

disable display n 使n号变量无效

enable display n 使n号变量有效

删除自动显示:

undisplay 变量名  

delete display m

ptype 变量  查看变量的类型

退出gdb调试:

quit命令


 

你可能感兴趣的:(linux,运维,服务器)