gdb简单使用教程

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

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

2 进入gdb模式:gdb

进入成功后界面如下:

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

3 退出gdb: quit

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

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

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 test02,输入:run boy gril,运行结果如下:

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

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

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

改变参数:set args dad mum

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

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

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

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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值