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:查看当前栈帧的局部变量值。

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

相关推荐
网硕互联的小客服32 分钟前
Linux服务器磁盘应该如何合理分区?
linux·运维·服务器
贵沫末2 小时前
Ubuntu——常用软件安装
linux·运维·ubuntu
Doraemomo2 小时前
Linux内核驱动开发——中断与定时器
linux·运维·驱动开发
2301_808414383 小时前
Linux中动静态库的理解
linux·运维·服务器
M78佐菲3 小时前
ARM学习笔记(11)
linux·arm开发·笔记·嵌入式硬件·学习
M78佐菲3 小时前
ARM学习笔记(10)
linux·arm开发·笔记·嵌入式硬件·学习
半仙白桑4 小时前
内核篇第十五讲:system-V共享内存
linux·共享内存·shmget·shmat·shmdt·shmctl
一条破秋裤4 小时前
Linux 线程创建:pthread_create 与基本回收
java·linux·运维
s6516654966 小时前
IDT和GDT是什么
linux
Android系统攻城狮6 小时前
Linux Gstreamer深度解析之gst_audio_decoder_set_estimate_rate调用流程与实战(四十五)
linux·gstreamer音视频·音视频进阶