zed_Debug配置
Zed Debug设置
本文写于2026 年1 月 18 日 后续可能zed的ui产生改变,部分UI位置可能并不准确
由于Zed的Debug的设置和vscode的设置不同,官方文档写的也文档也有点模糊,所以先写一个具体的小过程 自用。
创建Debug文件
zed的Debug是根据./zed下的debug.json文件来进行读取调试配置的,我们可以手动创建配置文件,当然也可以通过本身debug界面中的按键进行创建设置

Debug内容设置
在此之前先放一个我的一个debug的例子,接下来通过这个例子来对应
1 | [ |
首先这个json文件包含必须是一个列表,列表中包含几个对应的字典,而这里的每个字典都对应着调试设置中的一个标签的功能。

接下来详细分析每个字段的意思
label
字符串类型
label属于一个必须字段,也就是其中的列表的标签内容
adapter
字符串类型
必须字段,用于选择调试器后端,一般参数如下图,由于本身zed支持rust、C、py的调试即可直接使用,其他的可以通过在插件中下载调试器实现

progam
字符串类型
必须字段,要调试的二进制文件地址
以上是属于zed所规定的必须填入的字段,其他字段是根据对应调试器的设置进行配置,对应的网址如下
lldb https://github.com/vadimcn/codelldb/blob/master/MANUAL.md#starting-a-new-debug-session
https://sourceware.org/gdb/current/onlinedocs/gdb.html/Debugger-Adapter-Protocol.html
一般调试二进制文件更多一些,我个人更多调试rust,所以这里记载一下lldb的部分常用配置(clang等类似)
request
字符串
Debug的一个请求方式,这个可以具体看我gdb中关于调试载入方法的介绍,一般我们默认launch即可,除非我们需要attach一个正在运行的进程(这个情况下为什么不用万能的gdb呢)
name
字符串类型
lldb写的必需,但zed里可以忽略,毕竟会直接使用label,启动配置名称,出现在“运行”和“调试”面板中的信息
preRunCommands
字符串列表
启动或者附加之前自动使用的指令
sourceLanguages
字符串列表
比较关键的一个参数,通过这个参数可以写入要确定的语言特征,在debug的时候会对列表中的语言进行猜测并特殊处理,典型例子就是写入了rust以后有的特征和结构体就可以推断出,变成类rust源码的形式,否则信息不全生成的函数难以辨认
其他字段
启动一个新流程
选择“启动”启动方法时,这些属性是适用的:
| 属性 | 类型 | |
|---|---|---|
| program | 字符串 | 通往工作区机器上可执行文件的路径(即 CodeLLDB 运行的主机)。除非您使用targetCreateCommands或cargo。这相当于调用target create <program>对于选择目标架构或远程文件路径等高级选项,请使用targetCreateCommands相反。 |
| cargo | 字符串 | Cargo support请参阅货运支持。 |
| args | 字符串 ❘ 字符串 | 命令行参数。如果以字符串形式提供,则使用类似 shell 的语法进行拆分。 |
| cwd | 字符串 | 调试器的工作目录。 |
| env | 词典 | 在从父进程继承的变量之上添加环境变量(除非是 LLDBtarget.inherit-env设置是false在这种情况下,初始环境是空的)。参考现有变量${env:NAME}例如:"PATH": "${env:HOME}/bin:${env:PATH}"。 |
| envFile | 字符串 | 通往包含额外环境变量的文件路径。定义在env将覆盖从此文件中加载的值。 |
| stdio | 字符串 ❘ 字符串 ❘ 字典 | 请参见Stdio Rediction。 |
| terminal | 字符串 | 调试器stdio流的目标:- console用于调试控制台-integrated(默认)用于 VSCode 集成终端- external用于新终端窗口 |
| stopOnEntry | 布尔 | 是否在启动后立即停止调试。 |
