Linux中调式器gbd/cgdb

文章目录

调试器 - gdb/cgdb使⽤

调式的代码

cpp 复制代码
#include<stdio.h>
  
int Sum(int s ,int e){
        int result = 0;
        for(int i = s;i <= e; ++i){
                result += i;
        }
        return result;
}

int main(){
        int start = 1;
        int end = 100;
        printf("开始\n");
        int n = Sum(start, end);
        printf("%d,%d,%d\n", start, end, n);
        return 0;
}

调式

  • 程序的发布方式有两种,debug模式和release模式,Linux gcc/f++出来的二进制程序,默认是release模式。
  • 要使用gbd调式,必须在源代码生成二进制程序的时候,加上-g选项,如果没有添加,程序无法被编译。

常见使用

进入调式

shell 复制代码
cgdb 调式文件

推出调式

  • ctrl+d 或 quit调式命令

常见命令

-list/l :显示源代码,从上次位置开始,每次列出10行。

  • list/l 函数名 ;列出指定函数的源代码。

  • list/l 文件名 : 行号 : 列出指定文件的源代码。

  • r/run :从程序开始连续执行。

  • break/b 文件名:行号 :在指定行号设置断点。

  • break/b 函数名 :在函数开头设置断点。

  • n/next : 单步执行,不进入函数内部。

  • s/step:单步执行,进入函数内部。

  • info break/b:查看当前所有断点的信息。

  • finfish : 执行到当前函数返回,然后停止。

  • print/p:打印表达式的值。

  • set var:修改变量的值。

  • continue/c : 从当前位置开始连续执行程序。

  • delete/d :删除所有断点。

  • disable beakpoints:禁用所有断点。

  • enable breakpoints:启用所有断点。

  • info/i breakpoints:查看当前设置的断点列表。

  • display 变量名:跟踪显示指定变量的值。

  • undisplay 编号:取消对指定编号的变量的跟踪显示。

  • until 行号:执行到指定行号。

  • backtrace/bt:查看当前执行栈的各级函数调用及参数。

  • info/i locals:查看当前栈帧的局部变量值。

觉得我回答有用的话,记得点个关注哟!谢谢支持!

相关推荐
GeW12 小时前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx14 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位16 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
骑着蜗牛撵大象32717 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
..Dauntless..18 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
QMCY_jason18 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特18 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
あ-18 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu19 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip
老秦包你会19 小时前
Linux第十课---------Linux信号
linux