美文网首页
Linux下C++命令行调试实战

Linux下C++命令行调试实战

作者: 极客开发者 | 来源:发表于2021-11-23 08:34 被阅读0次

1. 准备代码

创建一个C++源代码文件 src/04_debug/sum.cpp,添加以下代码

#include <iostream>
using namespace std;

int main(int argc, char const *argv[])
{
    int N = 100;
    int sum = 0;
    int i = 1;

    while(i <= N){
        sum = sum + i;
        i = i + 1;
    }

    cout << "sum = " << sum <<endl;
    cout << "The program is over " <<endl;

    return 0;
}

2. 进入调试模式

在进入调试模式之前,先编译源代码,如下过程。

普通编译方式

g++ sum.cpp -o no_g.out

编译出用于调试的可执行文件

g++ -g sum.cpp -o yes_g.out

使用gdb命令进行调试,如果我们调试 no_g.out ,将会提示一下图错误

04_01.png

因为no_g.out这个可执行文件不包含用于调试的信息,输入quit再按回车即可,通过gdb yes_g.out指令执行包含调试信息的可执行文件,看到以下输出

04_02.png

此时可以正常进入调试

3. 调试过程

直接执行

run

或者使用简写r,运行结果如下图

04_03.png

在第11行打断点

break 11

运行结果如下图

04_04.png

也可以使用简写的方式,在第12行打断点

b 12

结果如下图

04_05.png

使用info break指令或者指令简写i b查看当前的断点,如下图结果

04_06.png

使用run指令或者r指令执行程序,此时命中了第11行断点,如下图内容

04_07.png

此时可以查看变量的值,如查看i的值,可以使用print i或者p i指令,如下图

04_08.png

使用p N 查看N的值,如下图

04_09.png

此时程序执行到第11行处,如果我们需要继续执行,输入continue指令并按回车即可,程序将执行到代码的第12行,如下图

04_11.png

因为我们是在while循环体内,i的值将不断变化,如果我们需要跟中i值的变化,需要输入display i指令即可,再输入continue指令让程序单步执行,如下图

04_12.png

可以观察到,通过循环,又回到了第一个断点,此时i的值已经变成了2。在gdb调试中,如果我们只按回车键,gdb将执行我们最后一次输入的指令,所以我们可以一直按回车键继续让程序单步执行。

当断点执行都某个位置时,我们想要查看断点附近的代码,可以执行list指令进行查看,如下图

04_13.png

相关文章

  • Linux下C++命令行调试实战

    1. 准备代码 创建一个C++源代码文件 src/04_debug/sum.cpp,添加以下代码 2. 进入调试模...

  • linux编程入门(七)-使用gdb调试程序

    程序开发离不开调试,可以断点调试,也可以打log调试,linux下断点调试c,c++程序用gdb。 断点调试虽然很...

  • Python38_pdb调试

    pdb:基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。 命令行启动方式 python -m pd...

  • python pdb调试

    pdb 调试 pdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。命令 简写命令 作用...

  • 网络编程1、调试

    pdbpdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。命令简写命令作用breakb设置断点...

  • gdb的使用

    返回总目录目录 前言 本文介绍Linux环境下的C/C++调试工具--gdb。虽然在Win或MacOS下,可以使用...

  • 在Linux中使用VS Code编译调试C++项目(gcc/g+

    最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试...

  • Deepin Linux 下用 vscode 调试 C/C++

    Deepin Linux 下用 vscode 调试 C/C++ 程序 现在网上的大部分类似博客都是错的、有问题的、...

  • python调试

    linux python调试技巧 Linux下Python基础调试 http://blog.163.com/liu...

  • 2019-01-16 Ubuntu/Linux 用vscode

    参考文章 Ubuntu/Linux 用vscode 运行/调试 c++ 程序在ubuntu上搭建vscode的开发...

网友评论

      本文标题:Linux下C++命令行调试实战

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