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

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

相关推荐
两斤牛肉一壶酒2 小时前
opencode 技能加载全挂背后,竟是不用系统的ripgrep
linux
j7~2 小时前
【Linux网络加餐(二)】《进程组,会话,控制终端,作业控制和守护进程》---详解
linux·运维·服务器·守护进程·会话·进程组·控制终端
天道jimmy2 小时前
VulnHub 系列:Prime,1
linux·运维·服务器
xiaoye-duck2 小时前
《Linux 网络编程》深入传输层 UDP 协议原理:端口、报文、缓冲区与内核源码解析
linux·网络·udp
好评1243 小时前
【Linux】数据链路层
linux·运维·网络
CC城子4 小时前
EtherNet/IP I/O 丢包排查(linux系统)
linux·单片机·tcp/ip·ethernetip
新时代牛马4 小时前
Linux 信号处理完整篇:从sigaction、掩码到内核发送与可重入排障
linux·运维·信号处理
程序员梅雨4 小时前
Linux & Shell 实用干货
linux·运维·服务器·后端·面试·php
吴声子夜歌4 小时前
编写Shell脚本——自顶向下设计
linux·运维·shell