美文网首页
GDB 详解

GDB 详解

作者: cb_guo | 来源:发表于2019-03-22 11:23 被阅读0次

gdb 调试利器

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具

测试代码

#include <stdio.h>
int nGlobalVar = 0;

int tempFunction(int a, int b){
    printf("\n tempFunction is called, a = %d, b = %d \n", a, b);
    return (a + b);
}

int main(){
    int n;
    n = 1;
    n++;
    n--;

    nGlobalVar += 100;
    nGlobalVar -= 12;

    printf("\n n = %d, nGlobalVar = %d \n", n, nGlobalVar);

    n = tempFunction(1, 2);
    printf("\n n = %d\n", n);
    return 0;
}

常用基本命令

  • r
    Run的简写,运行被调试的程序。
    如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。
  • c
    Continue的简写,继续执行被调试程序,直至下一个断点或程序结束
  • b 行号 | b 函数名
    b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。
  • d 编号
    d: Delete breakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。
  • s | n
    s: 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;
    n: 执行一行源程序代码,此行代码中的函数调用也一并执行。 s 相当于其它调试器中的“Step Into (单步跟踪进入)”;
    n 相当于其它调试器中的“Step Over (单步跟踪)”。 这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数)。
  • p 变量名
    Print的简写,显示指定变量(临时变量或全局变量)的值。
  • q
    Quit的简写,退出GDB调试环境。
  • bt | where
    显示栈信息

启动gbd

对C/C++程序的调试,需要在编译前就加上-g选项:

g++ -g hello.cpp -o hello

加载可执行文件

file hello

开始测试命令

  • r 当没有设置断点时,运行 r 直接执行完
  • 设置断点 分别在两个函数入口设置断点
  • 如果有断点,则程序暂停在第一个可用断点处。
  • c 继续执行被调试程序,直至下一个断点或程序结束
  • 查看栈 (腾讯暑期面试问到了,注意啊)
  • 查看变量数值
  • q 退出GDB调试环境。

参考

相关文章

  • 【实践】gdb调试golang程序入门及gdb命令列表

    1. 摘要 本文讲解gdb调试GOLANG程序的入门配置,以及gdb命令详解备忘。 2. gdb调试go程序入门...

  • linux gdb详解

    一.GDB命令详解 在linux程序调成中gdb是最常用的工具。 关于gdb的说明可以在linux下直接 man ...

  • GDB 详解

    gdb 调试利器 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程...

  • GDB详解

    gcc常见命令 1.gcc -E source_file.c -E,只执行到预编译。直接输出预编译结果。 2. g...

  • GDB详解

    gcc常见命令 1.gcc -E source_file.c -E,只执行到预编译。直接输出预编译结果。 2. g...

  • gdb ---- x命令详解

    examine命令缩写为x格式: 其他常用命令:编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g m...

  • 详解gdb的使用技巧

    01概念 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工...

  • gdb调试

    gdb安装 安装gdb 在钥匙管理器中新建证书 配置gdb证书 添加gdb初始化文件 .gdbinit gdb 命...

  • Debugging with GDB

    Debugging with GDB GDB@wiki(GNU Debugger)GDB is a portabl...

  • GDB 配置

    摘要:调试器 GDB 的配置 GDB 配置 使用 GDB 扩展来配置 GDB 事实上我还是觉得原生的 GDB 就...

网友评论

      本文标题:GDB 详解

      本文链接:https://www.haomeiwen.com/subject/rellvqtx.html