gdb调试使用教程

假设当前目录下有5个文件。

 

文件内容如下:

复制代码
// add.c
int myadd(int a, int b)
{
    return a+b;
}

// mul.c
int mymul(int a, int b)
{
    return a*b;
}

// div.c
int mydiv(int a, int b)
{
    return a/b;
}

// x.h
int myadd(int a, int b);
int mymul(int a, int b);
int mydiv(int a, int b);

// x.c
#include <stdio.h>
#include "x.h"

int main()
{
    int a = 100;
    int b = 12;
    int add, mul, div;
    add = myadd(a, b);
    mul = mymul(a, b);
    div = mydiv(a, b);
    
    printf("%d + %d = %d\n", a, b, add);
    printf("%d * %d = %d\n", a, b, mul);
    printf("%d / %d = %d\n", a, b, div);
    
    return 0;
}
复制代码

 

 

 

1. 使用gcc编译文件,注意要加上-g参数。(-g : 在执行代码中包含调试信息)

 

2. 使用gdb调试可执行文件x,进入调试页面

gdb x

 

 

常用命令:

(gdb)list:查看原代码(list-n,从第n行开始查看代码。list+ 函数名:查看具体函数,list main 返回主函数),简写l

(gdb)break+num:在第num行设置断点,简写b。b+函数名,给函数设置断点

(gdb)run:重新开始运行文件, 简写r

(gdb)print:打印值及地址, 简写p

(gdb)next:单步调试(逐过程,函数直接执行),简写n

(gdb)step:单步调试(逐语句:跳入自定义函数内部执行),简写s

(gdb)quit:退出gdb,简写q

 #

 

posted @   拾月凄辰  阅读(1008)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
主题色彩