You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中C编译器输出额外内容[1]+Done问题排查及命名询问

VS Code中C程序输出额外「[1] +Done」的问题

问题现象

编写的C程序本身未输出[1] +Done相关内容,但在VS Code调试运行时,输出中会附加调试器相关信息:

程序代码

#include<stdio.h>

int main (){
    int n, u;
    scanf("%d",&n);
    u = n%7;
    switch (u)
    {
    case 0:
        printf("sunday");
        break;
    case 1:
        printf("monday");
        break;
    case 2:
        printf("thusday");
        break;    
    case 3:
        printf("wednesay");
        break;    
    case 4:
        printf("thersday");
        break;    
    case 5:
        printf("fryday");
        break;    
    case 6:
        printf("saturday");
        break;    
    } 
    return 0;
}

实际输出

2
thusday[1] + Done  "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-igxp13xf.fzz" 1>"/tmp/Microsoft-MIEngine-Out-t4ttjgxc.zay" 

该程序在在线编译器中运行正常,无额外输出。

原因分析

这并非编译器配置问题,而是VS Code使用的Microsoft MIEngine调试器在调试会话结束时,自动输出的调试进程结束信息,属于调试器的附加日志,不是程序本身的输出内容。

解决方法

  • 用Ctrl+F5(Run Without Debugging)运行程序:跳过调试流程,直接执行程序,不会产生调试器附加输出
  • 修改调试配置文件launch.json:
    1. 添加"externalConsole": true,让程序在系统外部终端中运行,调试器信息不会混入程序输出
    2. 添加"showDevDebugOutput": false,关闭调试器的开发调试日志输出

问题名称

该现象没有特定的标准专有名称,一般称为GDB/MIEngine调试会话结束附加输出,本质是调试工具的日志信息泄露到了程序输出流中。

内容的提问来源于stack exchange,提问作者user29899462

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 03:27:07