• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2026-04-01 23:16 Aet 隐藏边栏 |   抢沙发  1 
文章评分 1 次,平均分 5.0

概述

Windows调试流程

Linux/GDB 的对应流程:

区别

  1. Windows 把调试信息放在独立的 .pdb 文件里,需要你手动指定路径
  2. Linux 把调试信息(DWARF)直接嵌入 .o / 可执行文件 / .so 中(编译时加 -g 选项),所以大部分情况下你不需要额外设置符号路径,GDB 自动就能找到

Linux调试

调试信息的生成与管理

  1. 编译时生成调试信息

  1. 调试信息存在哪里

完整的调试会话

  1. 示例程序

  1. 启动 GDB

  1. 运行控制

  1. 断点

  1. 查看信息

  1. 修改程序状态

Core Dump 调试

调试共享库中的崩溃

高级功能

自动化与脚本

GDB TUI 模式

GDB + AddressSanitizer

调试 LLVM

其他

WinDbg → GDB 命令对照

具体的编译选项

优化级别详解

CMake 中的配置

LLVM 开发中的实际构建策略

strip 命令——事后去掉调试信息

assert

问题

Linux二进制debugrelease区分

  1. 概述
    1. Windows 上,DebugRelease 的区别非常显式
    2. Visual Studio 有明确的配置下拉框,编译出来的文件名/路径都不同(Debug/Release 文件夹)
    3. 甚至链接的运行时库都不一样(msvcrtd.dll vs msvcrt.dll
  2. Linux 上没有这么"正式"的框架,DebugRelease 本质上只是编译选项的组合不同
    1. 同一个源码,加不同的 gcc/clang 参数,就产生 DebugRelease 版本的二进制

  1. 快速对照表

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享