当前位置: 首页 > news >正文

(三) Trae 调试C++ 基本概念

调试C++基本概念

  • 一、调试基础概念
    • 1.1 调试信息格式
    • 1.2 DWARF格式和PDB格式生成(图解)
    • 1.3.典型工具链和调试信息
  • 二、各工具链深度解析
    • 1. Clang++ 与 G++ 的 DWARF 差异
  • 三 调试工具

一、调试基础概念

1.1 调试信息格式

格式类型适用系统存在形式
DWARFUnix-like 系统标准格式嵌入可执行exe文件
(或独立.dwo文件 )
PDBWindows 专有格式独立的 .pdb文件

1.2 DWARF格式和PDB格式生成(图解)

编译时生成
Linux/macOS
编:clang++
链:lld.exe
链:ld.exe
Windows 编:cl.exe
编:clang-cl.exe
链:link.exe
源代码
调试信息
DWARF格式
PDB格式
DWARF集成格式<在exe内部>
.PDB文件格式
调试器=调试文件
LLDB=DWARF-5
GDB=DWARF-4
调试器=调试文件
WinDbg=pdb文件
CDB=pdb文件

1.3.典型工具链和调试信息

c++编译工具链有:

  1. MSVC(MsBuild.exe cl.exe link.exe)
  2. LLVM (三条线)
    2.1 支持msvc的 (ninja.exe clang-cl.exe + msvc:link.exe)
    2.2 支持LLVM原生的(ninja.exe clang++.exe lld.exe)
    2.2 支持MinGw的(ninja.exe clang++.exe + MinGw:ld.exe)
  3. MInGw (make.exe g++.exe ld.exe)

C++工具链表格:

工具链编译器链接器调试信息典型调试器
MSVCcl.exelink.exe.pdb文件windbg.exe / CDB.exe / vs的IDE
LLVMclang-cllink.exe.pdb 文件WinDbg.exe
LLVMclang++lld.exeDWARF-5
(内嵌入exe)
LLDB.exe
LLVMclang++ld.exe此处没有实践过
MinGwg++ld.exeDWARF-4(2,3)
(内嵌如exe)
GDB.exe

补充:工具链来源

编译工具链来源内容
MSVC安装visual studio (vs_installer.exe 安装时,选择编译安装c++)cl.exe link.exe windbg.exe等
LLVM下载安装:LLVM包clang++.exe lld.exe
clang-cl.exe
MinGw下载安装MinGwg++.exe ld.exe等

简单补一句:
clang-cl.exe 就是用来快速支持替换cl.exe的,他支持cl.exe的大部分命令行参数
基本可以认为一下作用

cl.exe       main.cpp -o mian.exe
clang-cl.exe main.cpp -o main.exe

二、各工具链深度解析

1. Clang++ 与 G++ 的 DWARF 差异

g++.exe ld.exe
GIMPLE
GCC前端
Gold/BFD链接器
DWARF-4
clang++.exe lld.exe
LLVM IR
Clang前端
LLD链接器
DWARF-5

关键区别:
版本差异:LLVM 默认 DWARF-5(更紧凑),GCC 默认 DWARF-4
模板调试:Clang 保留完整实例化链,GCC 可能丢失中间层
跨平台性:LLVM 生成格式在各平台一致性更好

三 调试工具

工具链调试格式调试器
MSVCpdbwindbg.exe
CBD(console debuger)
vs-IDE
LLVMDWARF-5lldb.exe
MinGwDWARF-4lld.exe

相关文章:

  • 《AI大模型趣味实战》构建基于Flask和Ollama的AI助手聊天网站:分布式架构与ngrok内网穿透实现
  • 数字人民币杠杆破局预付乱象 XBIT智能合约筑牢资金安全防线
  • 基于Java,SpringBoot,Vue,HTML宠物相亲配对婚恋系统设计
  • 如何实现Android屏幕和音频采集并启动RTSP服务?
  • 【Linux内核设计与实现】第三章——进程管理04
  • 多模态大语言模型(MLLM)- kimi-vl technical report论文阅读
  • UWA DAY 2025 正式启动|十年筑基,驱动游戏未来引擎
  • 临床试验中安全性估计策略与应用
  • 白鲸开源与亚马逊云科技携手推动AI-Ready数据架构创新
  • 企业级智能合同管理解决方案升级报告:道本科技携手DeepSeek打造智能合同管理新标杆
  • 用diffusers库从单文件safetensor加载sdxl模型(离线)
  • UniApp学习笔记
  • Drools+自定义规则库
  • 【蓝桥杯选拔赛真题104】Scratch回文数 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
  • 算法中的数学:gcd与lcm
  • 力扣-hot100(滑动窗口最大值)
  • 【昇腾】【训练】800TA2-910B使用LLaMA-Factory训练Qwen
  • 来自 3D 世界的 JPEG。什么是 glTF?什么是 glb?
  • Windows 10 上运行 Ollama 时遇到 llama runner process has terminated: exit status 2
  • 利用JMeter代理服务器方式实现高效压测
  • 经济日报:AI时代如何寻找“你的赛道”
  • 潘功胜:央行将实施好适度宽松的货币政策,推动中国经济高质量发展
  • 见微知沪|最大力度消费补贴,最大程度满足人们对美好生活的向往
  • 魔都眼·上海车展④|奔驰宝马保时捷……全球豪车扎堆首秀
  • 外交部否认中美就关税问题进行磋商谈判
  • 水利部启动实施蓄滞洪区建设管理三年行动