Visual Studio Code调试器无法启动

9
  • 操作系统及版本:Windows 10 Build 19042.985
  • VS Code 版本号:1.56.2
  • C/C++ 扩展程序版本号:v1.4.0-insiders
  • 其他扩展程序:remote-ssh

我一直在使用 Raspberry 上的 remote-ssh 和 C/C++ 扩展程序,但突然之间无法启动调试器。什么都没有改变,配置文件与以前相同,但现在当我启动调试器时,只看到顶部调试栏短暂出现了几秒钟,然后就消失了。控制台上没有任何消息。

为此,我从头开始创建了一个简单的项目,但是遇到了同样的问题。

复现步骤 launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "logging": { "engineLogging": true },
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ]
        }
    ]
}

main.c

#include <stdio.h>
int main(){
    printf("ciao\n");
    return 1;
}

使用 gcc -g main.c 进行编译。

如我之前所述,这个工作流程曾经对我有用,但在一秒钟内它停止了按预期工作,我不知道为什么以及如何修复,任何帮助都将不胜感激。

我尝试过的

  • 重新安装 vscode
  • 重新安装 c/c++ 扩展并手动删除扩展文件夹
  • 多次重启

更新

我已经尝试使用 wsl-remote 扩展,并且它按预期工作。

尝试卸载主机上的 gdb 并启动调试会话,但“gdb未找到”的消息甚至没有出现,如应该出现的那样。


有没有可能(test)程序只是定期退出?尝试设置"stopAtEntry": true, - Omni
@Omni 不,我已经设置了断点,但是没有任何反应。这种错误行为甚至在启动gdb之前就发生了,事实上我已经卸载并重新安装了,但是仍然出现相同的问题。 - Andrea Nisticò
你好!看起来我有一个类似的问题。调试面板会出现一秒钟,然后就消失了,没有启动调试器。你找到问题的原因了吗? - DAle
@DAle 你好,最终我通过在目标机器上重新安装整个操作系统来解决了问题,当时我非常绝望。我认为这是目标机器上某些ssh配置与远程调试产生冲突的原因。 - Andrea Nisticò
不确定这是否是您的具体问题,但对我来说,最新的Python调试器存在问题。我可以进入Python扩展程序,并在卸载下拉菜单中选择以前的版本,以返回到以前的调试器。 - Martin Cronje
4个回答

4
我曾经遇到类似问题,但找不到相关解决方案:
快速答案:在升级到VS Code 1.56.2后,请确保删除旧的断点并创建新的断点,并至少拥有一个断点和可用的launch.json文件。
详细信息: 当我启动“调试器栏”时,对于Python脚本,我会看到顶部的调试栏几秒钟,然后它就会消失。然后控制台上没有任何消息,什么都没有。我尝试重新安装VS Code,启用/禁用扩展,各种重启。
操作系统和版本:Mac OSX Version 11.4(20F71) VS Code版本:1.56.2 扩展程序:Microsoft的Python v2021.5.842923320
根本原因: 我确定更新了我的VS Code,之后这个神秘的问题开始发生,所以我查看了VS Code 1.56.2的发布日志。我找到了下面的发布日志。

调试视图显示在中断上#

debug.openDebug设置的默认值现在是openOnDebugBreak,这样每次触发断点时VS Code将打开调试视图。调试视图也会在第一次会话启动时显示。

因此,在VS Code 1.56版本发布后,调试器仅在至少找到1个断点时显示。然而,看起来在升级VS Code后,他们的内部代码检查历史断点数据存在问题。

https://code.visualstudio.com/updates/v1_56#_debug-view-displayed-on-break


1
谢谢!根据我的经验,按照建议删除断点后,需要关闭所有其他的VS Code窗口并退出应用程序(在macOS上),然后它才能再次开始工作。 - Oded Ben Dov

2

我在使用Python的时候也遇到了同样的问题。解决办法是更换有效的解释器,因为Python库没有被安装。请确保选择正确的解释器,然后再尝试一次。


0
这可能是由于VS Code C/C++扩展的错误安装引起的。在启动VS Code时,如果出现"无法启动C/C++语言服务器。 IntelliSense功能将被禁用"的消息,则很可能是这个原因。在这种情况下,可以通过安装先前版本的C/C++扩展来修复安装问题,方法如this answer所述。

0

我曾经遇到了一样的问题(尽管调试栏会出现一秒钟然后消失)。我正在使用具有 Python 3.6 的 conda 环境。我升级到了 3.8,具有相同的依赖项,它就开始工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接