问题反馈与日志
3979 字约 13 分钟
2026-11-03
遇到问题时,先保留现场,再复现一次并收集对应日志,最后到 Digital IDE Issues 提交。维护者需要知道“做了什么、预期是什么、实际发生了什么”,以及发生问题前后的完整输出。
反馈问题的流程
- 记录环境和现象:记下 Digital IDE、VS Code、操作系统和相关工具版本,说明是本机还是 Remote SSH,哪个操作没有达到预期。
- 保留当前日志:不要先清空 Output、重启窗口或删除构建目录。先保存出错时的输出;后端崩溃时同时导出证据,方法见下文。
- 检查已有问题:在 Issues 搜索错误原文或功能名。相同问题可补充自己的环境和复现材料;不同问题分别提交。
- 做一次可控复现:记录操作顺序和时间,保留从操作开始到失败的日志。能用少量文件复现时,提供可分享的最小工程;也可以注明 插件测试工程 的提交版本、入口和修改内容。
- 整理材料并提交:附复现步骤、预期与实际结果、对应 Output、配置片段和必要文件。按页面末尾的模板填写;截图用于说明界面,错误内容同时提供文本。
- 补充验证结果:维护者给出修复或排查步骤后,说明使用的版本、是否仍能复现,并补充新一轮日志。
不需要先判断一定是插件 Bug。若不确定是源码、工具还是扩展的问题,直接描述现象和证据即可。
如何获取 Output 输出
打开输出面板
默认布局下,Output(输出)位于 VS Code 窗口底部,与 Problems(问题)、Debug Console(调试控制台)、Terminal(终端)并列。下面的完整界面图用白框圈出整个输出面板:1 指向 Output 标签与日志区域,2 指向面板右上方的通道选择器。

在 VS Code 中选择 视图 → 输出(View → Output);也可以按 Ctrl+Shift+P,搜索并执行 View: Toggle Output(视图:切换输出)。展开底部面板右上方的通道下拉框,选择对应的 Digital-IDE 通道。

图中白框和箭头依次标出 View(视图) 与 Output(输出)。本页截图来自 Linux 上运行的 Digital IDE 0.5.3 开发版,采用英文 VS Code 界面;中文界面的入口位置相同,菜单与命令名称随界面语言变化。点击图片可放大查看。
输出(Output)、问题(Problems)和终端(Terminal)用途不同:
| 面板 | 包含什么 | 反馈时怎么用 |
|---|---|---|
| Output | 扩展启动、工具调用、任务状态及错误日志。 | 优先收集,是定位执行流程的主要材料。 |
| Problems | 源码诊断的文件、行列、错误编号与消息。 | 补全、语法检查或错误定位问题要附诊断原文与相关源码。 |
| Terminal | 手动运行命令、构建脚本或调试程序的终端输出。 | 问题由终端命令触发时,附命令、当前目录和输出。不能代替扩展的 Output。 |
选择正确的通道
当前版本提供四个通道。涉及多个环节时,分别保存相关通道,并注明通道名。

先展开图中 1 标出的下拉框,再从 2 标出的四个通道中选择。切换通道后,正文只显示当前通道的日志;需要多个通道时,应逐个复制保存。
| 通道 | 主要内容 | 适合收集的问题 |
|---|---|---|
Digital-IDE | 扩展和 digital-server 启动、工作区与路径、语言服务、工程操作、快速仿真及网表输出。 | 无补全/跳转、工程树异常、后端启动失败、快速仿真或网表生成失败。 |
Digital-IDE Hardware | HARD 操作、厂商硬件工具输出、硬件任务状态,以及硬件管理/调试相关后端错误。 | Vivado/Efinity 启动、构建、SRAM 下载、Flash 固化、ILA/VIO 调试。 |
Digital-IDE Software | SOFT 操作、XSCT/处理器软件流程及相关后端错误。 | 软件工程、应用构建、ELF 下载和处理器调试流程。 |
Digital-IDE Waveform | 波形文件打开、后端连接、Webview 握手、渲染器启动与波形相关错误。 | 波形打不开、空白面板、信号加载或交互异常。 |
例如,快速仿真后波形窗口空白,应同时保存 Digital-IDE 和 Digital-IDE Waveform;ILA 采样后无法显示波形,应同时保存 Digital-IDE Hardware 和 Digital-IDE Waveform。源码能打开但没有补全,先看主通道,不必先收集所有厂商工具日志。
复制并保存日志
- 先选择所需通道。点击日志正文区域,按
Ctrl+A、Ctrl+C(macOS 使用Cmd+A、Cmd+C),复制该通道当前的完整输出。 - 粘贴到新建文本文件并按通道命名,例如
digital-ide.log、hardware.log、software.log、waveform.log。 - 如需重新复现,先保存旧日志,再按需清空该通道。启动类问题可在保存后执行 Developer: Reload Window(开发人员:重新加载窗口),从启动阶段开始记录;其他问题重新执行出错操作即可。
- 复现结束后再次复制输出。保留第一条相关错误之前的命令、路径、任务信息,以及后续退出/失败结果,避免只截取最后一行。
Output 面板按通道显示日志文本;若第三方工具在日志中输出了具体的 .log 或报告文件路径,也可将该文件一并附上。
若通道不存在,先确认扩展是否启用、是否安装在当前执行端,并查看 Developer: Show Logs…(开发人员:显示日志…) 中的 Extension Host;远程问题还可能需要远程扩展宿主日志。没有扩展日志本身也是有用的现象,应在反馈中说明。
日志中的标签是什么意思
扩展日志格式
扩展包装的日志通常为 [类别 - 时:分:秒] 内容,例如:
[Launch - 10:20:30] Starting Digital Server language client.
[Path Check - 10:20:30] Digital Server executable: /opt/dide/digital-server
[Launch - 10:20:31] Digital-IDE Backend Server language service is ready.以上为格式示例;消息会随版本、界面语言和实际路径变化。时间用于对齐操作顺序;跨机器比较时还应注明时区。

图中 1 是类别,2 是时间,3 是消息正文;4 标出的 Finish 对应本次扩展激活完成。复制日志时,先点击正文,再按 Ctrl+A、Ctrl+C,保留完整上下文;不要只截取带颜色的一行。
| 标签 | 含义 | 应如何判断 |
|---|---|---|
Launch | 正在启动扩展、服务、工具或窗口。 | 表示开始启动;要继续查找 ready、成功或失败消息。 |
Path Check | 可执行文件、资源路径或文件指纹等定位信息。 | 用于确认实际运行的可执行文件或资源路径。 |
Info | 一般状态、配置、产物位置或工具正常输出。 | 有助于还原过程,不能只保留错误行。 |
Run | 操作开始或正在推进、等待某个阶段。 | 等待不一定是卡死;反馈等待多久、停在哪条消息。 |
Performance | 耗时或性能测量。 | 性能问题要附工程规模、耗时和执行环境。 |
Debug | 额外调试细节。 | 用于辅助定位;不是错误等级。默认界面未必显示所有调试信息。 |
Warn | 警告、取消、弃用提示或需要关注的情况。 | 看具体消息及最终状态;有警告不等于任务失败。 |
Error | 当前操作或某个步骤报错。 | 查找同一次操作中最早的相关错误,再检查后续退出状态。 |
Finish | 某项操作完成。 | 表示当前步骤或子任务执行完成。 |
部分工具输出会直接原样显示,没有上述前缀。标签是插件根据来源和文本做的分类,最终还要结合原始消息与任务结果;例如 stderr 是子进程的标准错误输出流,其中也可能包含警告或普通诊断,并非每一行都代表失败。
后端日志与任务标识
后端日志还可能采用下面的格式:
ERROR [digital_server::某个模块] 具体错误信息ERROR、WARN、INFO 是级别;方括号中的 digital_server::… 是后端代码模块,用于帮助维护者定位来源,不是你的 HDL 模块名。
当前 Output 主要转发后端的警告、错误及关键启动消息;如需更详细的底层日志,可按维护者指引补充采集。
厂商任务日志中还会出现以下信息:
| 标识 | 用途 |
|---|---|
[request …] | 本次前端操作请求,例如一次 Build。 |
[task …] | 后端任务编号;关联同一任务的进度、输出与最终结果。 |
[阶段] | 当前任务阶段,例如失败阶段 failed;具体值随操作变化。 |
| 最终状态 | 结合结果行判断成功、失败或取消,不能只看一条中间输出。 |
类型: 路径 | 返回的产物位置(提交前请确认文件生成时间与本次任务一致)。 |
反馈时保留 request/task 编号,尤其是同时运行多个操作时,不要把不同任务的错误拼成一次执行。
常见消息怎么理解
| 消息片段 / 现象 | 通常说明什么 | 应补充什么 |
|---|---|---|
language service is ready | 语言服务客户端已完成启动。 | 无补全时附具体 HDL、语言模式、配置及后续解析错误。 |
ENOENT / 找不到文件 | 程序或输入路径不存在,或调用依赖未找到。 | 完整报错、解析后的路径、执行端和工具配置。 |
EACCES / Permission denied | 文件访问或执行权限不足。 | 操作系统、路径和执行方式。 |
GLIBC… not found / shared libraries | 后端或工具与主机运行库不兼容或缺少依赖。 | 原始启动错误、系统/架构和后端版本;不是 HDL 语法错误。 |
ERROR / CRITICAL WARNING(厂商工具) | 厂商工具自己的诊断;CRITICAL WARNING 仍需按具体内容评估。 | 工具错误编号、前后文、器件、顶层、约束和工具版本。 |
Vivado 中以 # 开头的 Tcl 文本 | 可能是脚本回显;其中出现 error 不一定真的触发了错误。 | 后续实际的 ERROR、任务状态及对应日志,避免只凭单词判断。 |
timeout / 等待 Webview ready | 某个连接或握手未及时完成,需要区分后端与界面环节。 | 等待时长、主通道与 Waveform 输出、远程环境及操作步骤。 |
Digital Server crashed… / panic | 后端异常退出或发生运行时异常,需要保留崩溃证据。 | 出错前操作、主通道日志及下节的证据包。 |
后端崩溃时如何导出证据
后端退出导致补全、跳转或多个功能同时失效时,先保存 Output,再打开命令面板(Ctrl+Shift+P)执行:
- Digital-IDE: 打开最近的服务器崩溃证据(Open Latest Server Crash Evidence):查看最新证据目录。
- Digital-IDE: 导出最近的服务器崩溃证据(Export Latest Server Crash Evidence):Windows 下选择位置导出 ZIP;当前非 Windows 实现会打开证据目录,需要自行打包或通过远程文件工具取回。

图中 1 为搜索框,2 为导出命令,3 为打开目录命令。中文界面可搜索“服务器崩溃证据”。
Remote SSH 下证据由扩展运行端保存;无法在本机文件管理器直接打开远程路径时,可依据日志路径到远程主机取回。证据保存在扩展的全局存储目录中,不应假定它位于当前工程。
| 文件 | 含义 |
|---|---|
manifest.json | 扩展/后端版本、主机和工作区信息、退出代码/信号,以及故障类型。 |
server.stderr.log | 后端原始 stderr,用于查看 Output 未显示的上下文;当前有大小上限,可能带截断标记。 |
activity.jsonl | 按行记录的活动和退出事件,用于还原故障前后的时序。 |
workspace-files.json | 部分崩溃场景采集的 HDL 文件清单、大小和哈希摘要。 |
sha256sums.json | 证据文件完整性信息。 |
crash-event.json、monitor.log、digital-server.dmp | 特定平台或故障条件下的监控记录与崩溃转储文件。 |
digital-ide.function.lsp.crashForensics.enabled 默认开启。证据受保留数量、总大小和天数限制,应在故障后及时取回。正常停止服务未必保留证据;显示“没有可用证据”时,仍可提交 Output 和复现步骤。普通编译错误不等于后端崩溃,不必为此开启完整内存转储。
分享前检查日志、配置和证据包中的账户路径、服务器地址、密钥以及源码/内存内容。需要隐藏的信息可做一致替换,同时保留错误编号、相对目录关系和上下文;不能公开的完整工程可整理为最小复现。
提交问题时附哪些材料
| 问题类型 | 建议材料 |
|---|---|
| 语言服务 / 工程树 | 主通道日志、最小 HDL 和依赖、语言标准、相关 property.json、诊断原文及 .dideignore。 |
| 快速仿真 / 网表 | 主通道日志、顶层/testbench、仿真器或综合工具版本、调用参数和相关产物日志;波形异常再附 Waveform。 |
| HARD 构建 / 下载 / 调试 | Hardware 输出、厂商原始日志、工具版本、器件/顶层、约束;上板问题附连接方式与所用产物。 |
| SOFT / 处理器调试 | Software 输出、Vitis/XSCT/GDB 版本、处理器、硬件交接文件和 ELF 来源;终端或调试控制台有错误时一并提供。 |
| 波形显示 | Waveform 输出、可复现的小波形/DWS、操作步骤和截图;仿真或采样产生的问题同时附其来源通道。 |
| 后端退出 | 主通道输出、崩溃证据、最后的操作和可分享的复现文件。 |
到 Issues 点击 New issue,按仓库当前提供的模板提交;若没有合适模板,可复制下面的提纲。每个问题单独提交,标题写出功能、触发动作和现象。
标题:[功能] 执行某操作后出现的具体问题
### 环境
- Digital IDE 版本(发布版/开发版):
- VS Code 版本:
- 操作系统与架构:
- 本机或 Remote SSH(远程系统、扩展执行端):
- 相关工具及版本:
### 复现步骤
1. 打开什么工程/文件(测试仓库请注明提交版本)
2. 使用哪个顶层、执行哪个命令
3. 在什么操作之后出现问题
### 预期结果与实际结果
- 预期:
- 实际:
- 复现频率与等待时长:
### 附件
- 对应 Output 通道与操作时间:
- 从开始到失败的日志文本/文件:
- 配置片段、最小源码/波形、截图:
- 如为后端崩溃:证据包或无法获取的原因不确定如何缩小工程时,先提供现有日志、配置和明确步骤,并说明哪些材料暂时无法分享。材料可继续补充,不需要等到完全定位根因才反馈。