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

发布于:2025-05-01 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、调试基础概念

1.1 调试信息格式

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

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

编译时生成
Linux/macOS
编:clang++ g++.exe
链: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 LLVM:lld.exe)
    2.2 支持MinGw的(ninja.exe clang++.exe + MinGw:ld.exe)
  3. MinGw (make.exe g++.exe ld.exe)

C++工具链表格:

工具链 编译器 链接器 调试信息 典型调试器
MSVC cl.exe link.exe .pdb文件 windbg.exe / CDB.exe / vs的IDE
LLVM clang-cl link.exe .pdb 文件 WinDbg.exe
LLVM clang++ lld.exe DWARF-5
(内嵌入exe)
LLDB.exe
LLVM clang++ ld.exe 未实践过
MinGw g++ ld.exe DWARF-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 下载安装MinGw g++.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 生成格式在各平台一致性更好

三 调试工具

3.1 调试工具

工具链 调试格式 调试器
MSVC pdb windbg.exe
CBD(console debuger)
vs-IDE
LLVM DWARF-5 lldb.exe
MinGw DWARF-4 lld.exe

3.2 调试插件(Trae)

  1. Extension Pack for C/C++(KylinIdeTeam) 已经包含:
    1.1 kylin Clangd
    1.2 C/C++ Debug(gdb) – 因为这个,所以下载较慢
    1.3 CMake Intelli
    1.4 CMake Tool(fork)
    1.5 Kylin Native Debug
  2. CodeLLDB (vadimcn)

其中ColdeLLDB是用来调试LLVM原生的lldb.exe连接出来的程序.


网站公告

今日签到

点亮在社区的每一天
去签到