当前位置: 首页 > news >正文

gdb调试常用命令

gdb简介

GDB(GNU Debugger)是GCC的调试工具。

要使用GDB,需要在源代码编译的时候添加 -g 参数。

用到四个基础文件 file1.c、file2.c 、head.h、hello.c,一个 makefile 文件

其中文件file1.c 如下:

#include"head.h"int sum(int a, int b)
{printf("here is file1\n");return a+b;
}

其中文件file2.c 如下:

#include"head.h"int mul(int a,int b)
{printf("here is file2\n");return a*b;
}

其中文件head.h如下:

#include<stdio.h>
int sum(int a,int b);
int mul(int a,int b);

其中调用文件 hello.c 如下:

#include"head.h"int main()
{printf("here is hello.c\n");int a=sum(1,2);int b=mul(2,2);printf("1+2=%d\n",a);printf("2*2=%d\n",b);return 0;
}

makefile文件:

src=$(wildcard ./*.c)
obj=$(patsubst %.c,%.o,$(src))
target=hello
CC=gcc
CPPFLAGS=-I ./
# 最终目标
$(target):$(obj)$(CC) -o $@ $^
#注意这里加了参数 -g
%.o:%.c$(CC) -o $@ -g -c $< $(CPPFLAGS)# 伪目标
.PHONY:clean
clean:rm -rf $(target) $(obj)

使用 make 命令生成 hello 可执行文件,注意在编译阶段一定要添加 -g 参数

make
#输出,并生成 hello 可执行文件
gcc -o file2.o -g -c file2.c -I./
gcc -o hello.o -g -c hello.c -I./
gcc -o file1.o -g -c file1.c -I./
gcc -o hello file2.o hello.o file1.o

gdb启动

gdb启动命令

#gdb 可执行文件
gdb hello
#输出
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
...
...
Reading symbols from hello...done.
(gdb)

gdb 就启动了,可以在gdb里面输入以下相关调试命令进行调试

1. 显示源代码

命令 作用
show listsize 查看当前 list 命令显示的行数
set listsize count 设置 list 命令显示的行数为count
list 显示当前源程序文件,显示下方默认行数的内容
list - 这里可以理解成减号,显示上方默认行数的内容
list linenum 显示 linenum 行处的上下文内容
list function 显示函数名为function的函数的源程序
list file:linenum 显示file文件下第n行
list file:function 显示file文件的函数名为function的函数的源程序

show listsize

查看当前 list命令 显示行数的大小

(gdb) show listsize
#输出,默认显示 10行
Number of source lines gdb will list by default is 10.

set listsize count

设置一次显示源代码的行数

#设置默认显示 5行
(gdb) set listsize 5
#输出默认显示行数
(gdb) show listsize
#输出,默认显示5行
Number of source lines gdb will list by default is 5.

2. 设置断点

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

2.1 添加断点

命令 作用
b linenum 在第 linenum 行设置断点
b func 在函数 func 入口处设置断点
b filename:linenum 在源文件filename的linenum行处设置断点
b filename:function 在源文件filename的function函数的入口处设置断点
b test.c:8 if value== 5 条件断点,当变量value的值为5时断电生效

2.2 查看所有断点

命令 作用
info break 简写 i b ,查询所有断点

2.3 断点属性修改

删除断点

命令 作用
delete num 简写 d num ,删除某个断点
delete num1 num2 简写 d num1 num2,删除多个断点
delete n1-n2 简写 d n1-n2 ,删除多个断点
delete 删除所有断点

禁用断点

命令 作用
disable num 简写 dis num ,禁用某个断点
disable num1 num2 简写 dis num1 num2,禁用多个断点
disable n1-n2 简写 dis n1-n2 ,禁用多个断点
disable 禁用所有断点

启用断点

命令 作用
enable num 简写 ena num ,启用某个断点
enable num1 num2 简写 ena num1 num2,启用多个断点
enable n1-n2 简写 ena n1-n2 ,启用多个断点
enable 启用所有断点

3. 调试代码

命令 作用
run 简写 r ,运行程序,有断点也不停
start 运行程序,有断点停止运行
next 简写 n,单步执行
step 简写 s,单步执行,可以进入函数体内
finish 退出函数体
until 简写为u,在循环体内单步执行, 直到退出循环体
continue 简写为c,继续运行程序, 若有断点则跳到下一个断点处

4. 查看变量的值

命令 作用
print count 简写p count,打印变量count
display 变量名 添加一个变量名展示
info display 查看添加了哪些变量名展示
undisplay num(info display时显示的编号) 删除某个变量展示
delete display num 删除某个变量展示
disable display num 禁用某个变量的展示
enable display num 启用某个变量的展示

5. 其他语法

查看变量类型: ptype 变量名

临时设置变量的值:set var 变量名=值

http://www.jsqmd.com/news/24500/

相关文章:

  • 企业微信ipad协议实现聚合聊天系统、RPA机器人智能回复
  • 2025年市面上别墅石材品牌与行业内别墅石材源头厂家推荐榜单及口碑好的别墅石材产品分析
  • 最近公共祖先 (LCA)
  • ChatGPT API集成测试自动化框架的实践与成效汇报
  • [题解]【MX-S8】梦熊 CSP-S 2025 模拟赛
  • 2025四川碳晶板品牌
  • 详细介绍:求余运算和数学模运算的知识了解
  • 基于蚁群算法解决车辆路径问题(VRP)的MATLAB实现
  • 2025 年工业除湿机,恒温恒湿机,精密空调,除湿加湿一体机厂家最新推荐,产能、专利、环保三维数据透视
  • 从手动到全自动:我们如何用Dify重构了API回归测试流程
  • 2025 年管道除湿机,中央除湿机,新风除湿机,变频除湿机厂家最新推荐,产能、专利、环保三维数据透视
  • 2025年10月中国管理咨询公司推荐榜:五强数据对比
  • 条码识别插件 quaggaJS - microsoft
  • 2025年10月中国管理咨询公司推荐榜:金蓝盟领衔六强对比评测
  • 基于3GPP LTE标准的信道仿真模型
  • 2025 年灵巧手厂家最新推荐榜,技术实力与市场口碑深度解析,筛选高适配性与长耐用性优质品牌
  • Dify工作流实战:一键自动生成测试报告并推送钉钉,我每天白赚1小时
  • CF2043D Problem about GCD
  • 2025年10月智能工厂规划咨询公司排行:五家对比一目了然
  • 【2025-10-27】干就是了
  • 2025年10月智能工厂规划咨询公司推荐:客观评价榜及指标对比
  • 2025年10月智能工厂规划咨询公司推荐:热门对比榜五强深度解析
  • 2025 年 10 月 ups 发电机租赁,静音发电机租赁,发电机租赁附近,附近发电机租赁公司最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 2025 年 10 月 2 小时应急发电机租赁,山东发电机租赁,大型发电机租赁公司最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 2025年10月数字化咨询公司推荐:五强榜单与实战对比 .
  • 2025年10月精益制造咨询公司推荐榜:五强实测排行
  • 2025年10月精益制造咨询公司推荐:榜单揭晓与选型思路
  • 2025 年移动发电机租赁,大型发电机租赁,柴油发电机租赁公司最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 2025年10月绩效管理咨询公司推荐:五强榜单与选择指南
  • Java前后端分离架构的实践与优化路径