gdb简单使用教程

1 编译时加入gdb选项:g++ -g hello.cpp -o hello

加入-g参数后,编译生成的可执行文件hello将拥有更大的体积,(相比于不加-g).

2 进入gdb模式:gdb

进入成功后界面如下:

gdb简单使用教程_第1张图片

也可以在启动gdb时加载一个要调试的可执行文件:gdb hello

3 退出gdb: quit

4 常见的gdb命令:file list next step run c quit ...

使用时可以在gdb模式下,输入: help ,查看命令的用途和用法;

5 file命令详解

file命令用于加载要调试的可执行程序文件,gdb会在启动时所在的目录下寻找可执行文件。

在gdb模式下输入:file hello, 提示如下,则说明file已经成功读取了可执行文件hello中的调试信息,已经准备好接受用户具体的调试命令了。

6 list命令详解

list命令可以列出可执行文件的源代码的一部分,使用时简写为:l。

6.1 list命令不带参数的用法

gdb模式下,file test01, 然后输入l,将会显示10行源代码,再次输入l,接着显示后面的10行源代码;

6.2 list命令显示指定行前后的源代码内容

输入:l n,将显示第n行的前5行和后4行的源代码;

6.3 list命令显示始末行之间的源代码内容

输入:l n1,n2,n1起始行,n2结束行;闭区间

6.4 list命令带函数名作为参数,显示函数的上下10行内容

list funcname;

7 run命令,简写r

run命令可以在gdb中运行调试中的程序,可以跟一个或多个参数,这些参数可以发给可执行程序;

用法:run arg1 arg2 ...

示例:将test02.cpp编译为test02

gdb简单使用教程_第2张图片

gdb test02,输入:run boy gril,运行结果如下:

gdb简单使用教程_第3张图片

使用:show args,显示传给main函数的参数

gdb简单使用教程_第4张图片

重新设置传给main函数的参数:

如果我们继续在gdb下输入run,会发现默认传递上一次run传递给main函数的参数boy gril,

改变参数:set args dad mum

gdb简单使用教程_第5张图片

8 break命令设置断点,命令简写为b

8.1 b linenumber, 例如:b 6; 在第6行添加断点,程序执行完第5行便会停下来;

8.2 b funcname,在函数的第一条语句处停下来,

如果第一条语句仅定义未赋值,例如:int a,b,c;则会跳过(执行)改行语句;

你可能感兴趣的:(LINUX,linux,c++,运维)