🎯 什么是 DAP?为什么它很重要?
在介绍新功能之前,让我们先快速了解一下 DAP(Debug Adapter Protocol,调试适配器协议)。
DAP 是什么?
- DAP 是一个标准化协议,让 IDE 可以与各种调试器通信
- 类似于 LSP(Language Server Protocol)之于代码编辑
- 让 CLion 不再局限于 LLDB 和 GDB,可以支持更多调试器
CLion 的 DAP 演进:
- 2025.3:首次引入 DAP 支持,仅支持 stdin/stdout 通信
- 2026.1 EAP:新增 TCP 连接支持,更灵活!
🔥 重磅功能 1:DAP 调试器支持 TCP 连接
为什么需要 TCP 连接?
在 CLion 2025.3 中,DAP 调试器只能通过 stdin/stdout(标准输入输出)与 CLion 通信。这虽然够用,但有些调试器只支持 TCP 连接,无法通过 stdin/stdout 工作。
TCP 连接的优势:
┌─────────────────┐ ┌─────────────────┐
│ CLion IDE │ │ DAP Debugger │
│ │ TCP 连接 │ │
│ - 前端界面 │ ←──────────────→ │ - 调试引擎 │
│ - 断点管理 │ 更灵活、更强大 │ - 目标进程 │
└─────────────────┘ └─────────────────┘
对比:
┌─────────────────┐ ┌─────────────────┐
│ CLion IDE │ │ DAP Debugger │
│ │ stdin/stdout │ │
│ - 管道通信 │ ←──────────────→ │ - 受限通信 │
│ - 不够灵活 │ 只能本地调试 │ - 功能有限 │
└─────────────────┘ └─────────────────┘

两种工作模式:Launch vs Attach
CLion 2026.1 EAP 现在支持两种 TCP 连接模式,适应不同调试器的需求:
1️⃣ Launch 模式(启动模式)
- CLion 主动启动调试器进程
- 通过 TCP 连接到调试器
- 适合:调试器需要由 IDE 启动的场景
CLion → 启动调试器 → 建立 TCP 连接 → 开始调试
2️⃣ Attach 模式(附加模式)
- 调试器已经运行并监听 TCP 端口
- CLion 连接到现有调试器
- 适合:调试器独立启动或远程调试场景
调试器启动并监听端口 → CLion 连接 → 开始调试
如何配置 TCP 连接的 DAP 调试器?
在 CLion 中配置 DAP 调试器非常简单:
打开调试配置:
Run→Edit Configurations...添加 DAP 调试器:点击
+号,选择DAP选择连接模式:
- Launch:配置调试器可执行文件路径和参数
- Attach:配置 TCP 主机和端口
配置 TCP 设置(以 Attach 模式为例):
{
"type": "your-dap-debugger",
"request": "attach",
"name": "Attach via TCP",
"host": "localhost",
"port": 4711
}
🔢 重磅功能 2:数值变量多格式显示
这是什么功能?
在调试程序时,你经常需要查看变量的值。但同一个数值,在不同场景下需要不同的显示格式:
- 十进制(Decimal):人类可读,比如
255 - 十六进制(Hexadecimal):内存地址、颜色值,比如
0xFF - 八进制(Octal):文件权限,比如
0755 - 二进制(Binary):位操作,比如
0b11111111
以前:CLion 只显示十进制,你需要自己心算转换
现在:右键变量,一键切换显示格式!
如何使用?
步骤超简单:
暂停程序:在调试时让程序暂停(断点或手动暂停)
找到变量:在
Threads & Variables(线程和变量)面板中找到要查看的变量右键菜单:右键点击变量
选择格式:选择
View as...(查看为),然后选择:Decimal(十进制)Hexadecimal(十六进制)Octal(八进制)Binary(二进制)
可选:在同一菜单中还可以选择填充格式(Padding)

🚀 重磅功能 3:远程调试性能大幅提升
架构重构
CLion 2026.1 EAP 完全重构了远程开发模式下的调试器架构,让调试更响应、更稳定。
优势:
- ✅ 前端渲染 UI:Debug 工具窗口和断点在 IDE 前端渲染,响应更快
- ✅ 后端专注调试:后端托管调试会话,与目标进程通信
- ✅ 分离架构:前后端职责清晰,性能更优
性能提升:
- 调试操作响应更快
- 断点设置更迅速
- 变量查看更流畅
- 整体稳定性提升
⚡ 重磅功能 4:Natvis 性能爆炸式提升
什么是 Natvis?
Natvis(Native Visualizer) 是微软开发的一个框架,用于在调试时自定义 C++ 类型的显示方式。
举个例子:
// 没有 Natvis:调试器显示
std::vector<int> vec
- _Myfirst: 0x000002a3f4e01000
- _Mylast: 0x000002a3f4e01010
- _Myend: 0x000002a3f4e01020
// 有 Natvis:调试器显示
std::vector<int> vec
- [0]: 1
- [1]: 2
- [2]: 3
- size: 3
Natvis 让复杂数据结构(如 STL 容器)在调试时以人类可读的方式显示。