商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > CentOS上C++代码如何进行调试

CentOS上C++代码如何进行调试

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

在 CentOS 上调试 C++ 代码,最经典的组合莫过于 GCC 加上 GDB。这套工具链虽然看起来命令行有点多,但一旦上手,调试效率不比图形界面差。下面把整个流程拆开来讲,其实每一步都很直接。

CentOS上C++代码如何进行调试

  1. 编译时带上调试信息
    这是最基础的一步——用 g++ 编译的时候,加上 -g 选项。没有这个参数,生成的可执行文件里不包含符号信息,后面 GDB 就无从知道变量名、行号这些关键内容。

    g++ -g -o myprogram myprogram.cpp
  2. 启动 GDB
    直接用 GDB 加载刚才编译好的程序:

    gdb myprogram

    进入交互界面后,就可以开始下命令了。

  3. 设置断点
    main 函数处停住,是最常见的做法。当然也可以在任意函数上设断点:

    break main
    break function_name

    断点设好比提前在地图上标好“检查点”,程序跑到那里就会自动暂停。

  4. 运行程序
    在 GDB 里输入 run,程序就开始执行。如果之前设了断点,它会在第一个断点处停下来等你。

    run
  5. 检查变量和内存
    程序暂停后,最常用的就是查看变量值:

    print variable_name

    如果想看调用栈(比如当前是哪个函数调了哪个函数),用 backtrace。想直接看栈上的内存内容,可以搭配 x/10xw $sp 这种命令,按十六进制格式打印栈指针附近的10个字。

  6. 单步执行
    step(缩写 s)会进入函数内部一步步走;next(缩写 n)则是把整个函数调用当作一步跳过,不进入内部。两者区别要分清,不然容易走偏。

    step
    next
  7. 继续执行
    如果已经检查完当前断点处的状态,想跑到下一个断点,就用 continue(缩写 c):

    continue
  8. 退出 GDB
    调试结束,输入 quit 即可:

    quit
  9. 善用 GDB 脚本
    如果每次调试都要重复输入一大堆命令,可以写成脚本文件,GDB 支持批量执行。把常用断点、打印命令、甚至条件判断写进去,能省下不少重复劳动。

  10. 图形界面也不是不行
    虽然命令行 GDB 很强大,但如果你更习惯图形化操作,CLion、Eclipse CDT 或者 VS Code 都内置了 GDB 的支持,设置断点、查看变量、拖拽调试,体验和大型 IDE 无异。不过话说回来,底层调用的还是 GDB,学会命令行版能让你对调试过程理解得更透彻。

调试这件事,说到底就是一个反复“设断点→跑→查变量→改代码→再跑”的循环。刚开始可能会觉得记不住命令,但多用几次就会发现,GDB 的核心命令不过那十来条,熟练之后找 bug 的速度会明显上一个台阶。

本文转载于:https://www.yisu.com/ask/81216459.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注