gdb调试--断点设置

gdb调试

在没有集成开发环境的情况下,使用gdb调试。
在gdb调试前,必须先编译,生成可执行程序,使用gcc命令编译和**-g**参数

gcc main.c f1.c f2.c -o app -g

-g:给执行程序保留函数名和变量名

启动gdb

测试代码:

#include"stdio.h"
int main(int argc,char *argv[])
{
        int j=argc,i;
        printf("argc=%d\n",argc);
        for(i=0;i<j;i++)
                printf("argc=%d,argv[]=%s\n",i,argv[i]);

}

  • gdb+执行程序名,例如agd app
  • 给程序传参:set args 参数1 参数2

执行程序
在这里插入图片描述
开始:r启动,没有设定断点
在这里插入图片描述

查看文件信息

查看当前文件:

l:查看当前文件的调试信息,默认10行
l+行号:显示特定行号的上下文
l +函数名:查看当前文件特定函数

查看其他文件:

l + 文件名:行号:查看文件信息
l +文件名 :函数名:查看特定函数的信息

设置显示行数:

show listsize:显示输出行
set listsize (number):设置输出行号

在这里插入图片描述

设置断点

单个断点:

	b+设置断点所在行:设置断点
	b+函数名:函数名处设定断点
	b+文件名:行号/函数名:在别的函数设置断点

在这里插入图片描述
查看断点:

i b:查看断点

在这里插入图片描述

无效断点:对于函数中的,大括号和注释,设置的断点是无效的。

看断点是否使能,或者说是否有效,看Enb这个项,y就是有效。

其中Num为断点的标号

删除断点

单个删除:每个断点号用空格隔开。

d + 断点号:

连续删除:断点号范围表示,例如4-7

d+断点号范围 

断点失能

dis+断点号

断点使能

enb+断点号

在这里插入图片描述

条件断点

b+行号+if 变量==var:当某行的变量等于某个值的时候停止

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值