标签: vscode-debugger

“拒绝的承诺未在 1 秒内处理”vscode 扩展 API

我正在尝试为 VS 代码编写一个简单的扩展,将选择重命名为给定的字符串。该应用程序是使用扩展生成器引导的:https://code.visualstudio.com/docs/extensions/example-hello-world#_generate-a-new-extension

为此,我使用以下代码:

const editor = vscode.window.activeTextEditor;
    if (!editor) throw Error;

    const position = editor.selection.active
    const uri = editor.document.uri

    vscode.commands.executeCommand("vscode.executeDocumentRenameProvider", uri, position, "donkey")
        .then(edit => {
            if (!edit) throw Error;

            return vscode.workspace.applyEdit(edit);
        });
Run Code Online (Sandbox Code Playgroud)

该命令绑定到键绑定。我使用 F5 启动调试器(启动 VS Code 实例进行调试,如教程中所示: https: //code.visualstudio.com/docs/extensions/example-hello-world#_debugging-your-extension)。然后,我在该调试实例中打开的文件中选择一堆代码,然后按我的按键绑定。

但是,在调试控制台中,我收到“拒绝的承诺未在 1 秒内处理”。不会抛出任何错误,并且由于executeCommand是一个Thenable,而不是一个真正的Promise,所以我无法对其调用catch()。

我尝试将调用包装在 try/catch 块中,但没有成功。当我尝试其他操作时,例如使用 vscode.window.showInformationMessage 显示消息或提示用户输入,它可以工作,但我没有看到错误。

我也尝试对扩展的 Typescript 版本执行相同的操作,但我得到了相同的行为。

我不明白我做错了什么,我缺少什么吗?

javascript visual-studio-code vscode-extensions vscode-debugger

7
推荐指数
1
解决办法
9114
查看次数

在 VSCode 中调试 Eigen

在调试过程中,我希望能够访问特征矩阵和向量值。似乎一旦我有了一个.natvis文件,就可以创建一个 C++ 对象的自定义视图这里有一个.natvisEigen 文件,但是我不知道如何将它与 VSCode 集成。我还尝试了gdb 扩展,但没有成功。

当前调试器视图

我怎样才能做到这一点?或者我还有什么其他解决方案?

debugging eigen visual-studio-code vscode-debugger

7
推荐指数
1
解决办法
4850
查看次数

将 webRoot 设置为正确的文件夹会破坏 VS Code 调试

我正在尝试设置一个启用调试并使用 webpack 的原始 Web 应用程序。

这是 vscode launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "DEBUG CHROME",
            "url": "http://localhost:9000",

            //"webRoot": "${workspaceFolder}/public" // this does not work, but is correct, according to documentation

            "webRoot": "${workspaceFolder}" // this works, but is incorrect, according to documentation
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

项目结构:

项目结构

有谁知道为什么当 webRoot 指向正确的路径时调试会中断(没有命中断点) -${workspaceFolder}/public并且对于不正确的路径工作正常?

根据 vs 代码文档

如果您使用 url,请设置webRoot为提供文件的目录

在这种情况下这显然是错误的。

复制的最小示例在这里

有人知道webRoot实际如何运作吗?


编辑这里有人说,那webRoot就是:

在内部它用于将源映射绑定到本地文件 …

javascript google-chrome webpack visual-studio-code vscode-debugger

7
推荐指数
0
解决办法
3234
查看次数

使用 VsCode 远程调试 Scala Spark 作业

我希望能够使用 VsCode 远程调试在 Docker 容器中运行的 Scala 编写的 Spark 作业。这就是我到目前为止所拥有的

  1. 安装了scala-metals v0.8的 VsCode
  2. 调试启动配置
  3. 我用docker-compose up启动了一个 Spark 集群
  4. 我使用以下命令向上面启动的集群提交一个 Spark 作业
docker exec -it -e SPARK_SUBMIT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=4000 -w /spark spark-job-starter_master_1 bin/spark-submit --class example.StarterSparkJob /build/example.jar 
Run Code Online (Sandbox Code Playgroud)

这样做后我看到输出Listening for transport dt_socket at address: 4000

  1. 我尝试从 VsCode 启动调试器,但收到错误。
Debugger failed to attach: handshake failed - received >Content-Length< - expected >JDWP-Handshake<
Run Code Online (Sandbox Code Playgroud)

代码的完整详细信息位于https://github.com/aedenj/spark-job-starter/tree/vscode-debug-setup。感谢您的指导。

scala apache-spark visual-studio-code vscode-debugger scala-metals

7
推荐指数
0
解决办法
1486
查看次数

Visual Studio 代码断点在使用 TypeScript 的 Node.js 上不起作用

我尝试了很多解决方案,但没有人适合我。代码执行,但我无法放置断点并调试它。请你帮助我好吗?

我尝试过以下 VSCode 配置脚本:

{
      "type": "node",
      "request": "launch",
      "name": "Typescript Node JS",
      "program": "${workspaceFolder}/build/server",
      "preLaunchTask": "npm: build",
      "sourceMaps": true,
      "stopOnEntry": false,
      "internalConsoleOptions": "openOnSessionStart",
      "outFiles": [
          "${workspaceFolder}/out/**/*.js"
      ]
    },
    {
      "name": "ts node",
      "type": "node",
      "request": "launch",
      "args": [
        "${workspaceFolder}/server"
      ],
      "runtimeArgs": ["--nolazy", "-r", "ts-node/register"],
      "sourceMaps": true,
      "cwd": "${workspaceRoot}",
      "protocol": "inspector"
    }
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript visual-studio-code vscode-debugger

7
推荐指数
1
解决办法
8991
查看次数

为 vscode 调试器的 C++ 类型创建“可视化工具”

在指令(https://code.visualstudio.com/docs/cpp/launch-json-reference)中,我看到VSCode可以使用“.natvis”文件。然后它引用 Visual Studio 中的文档,因此大多数使用信息不适用,但有一个关于文件语法的相当简短的部分。

  • 它说“Natvis 自定义适用于类和结构,但不适用于 typedef”。但是类型别名的情况如何呢using?“变量”窗格中向我显示的类型确实涉及using创建代码随后使用的名称,尽管它实际上是在内部命名空间和模板别名中定义的。我需要解开没有任何usings 的名称吗?

  • 它提供了一个简单的模板示例,但该示例使用类型参数并且仅使用一个模板参数。那么非类型参数呢?是对*要匹配的名称字符串进行操作还是仅对名称的各个部分进行操作?

    template <int S, int F>
    class Decimal { ... };
    
    Run Code Online (Sandbox Code Playgroud)
  • 有关在 Visual Studio 2019(在 Windows 上!)中打开诊断的信息与 VSCode 完全无关。我该如何排除故障?

  • 如上所述,我有一个Decimal用整数表示定点数的类。当函数无法调用时,如何制作我想要的输出?字符串操作可以工作,一旦整数成员(字段)形成字符串用于显示,我只需要在右边的位置插入一个F小数点

c++ vscode-debugger

7
推荐指数
0
解决办法
618
查看次数

VSCode 不会为 nextjs 绑定客户端断点 (9.5.2)

在 nextjs 最近的一项更新中,vscode 中的客户端 chrome 调试似乎已损坏。当我启动以下配置时,我的断点都没有被绑定:

        {
            "type": "chrome",
            "request": "launch",
            "name": "Debug Chrome on localhost",
            "url": "http://localhost:3000",
            "webRoot": "${workspaceFolder}/pathto/myapp"
        },
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用Debugger for Chrome (v4.12.10)扩展程序,VSCode (v1.48.1)并且正在调试通过nextjs (v9.5.2)在 Chrome 中运行提供的客户端 JavaScript,而不是 nextjs 节点进程。

有谁知道发生了什么变化以及如何让调试器再次绑定断点?

google-chrome-devtools visual-studio-code next.js vscode-debugger

7
推荐指数
1
解决办法
4147
查看次数

如何使用 VSCode 调试器调试 Python console_script 命令行应用程序?

我有一个 Python 包package_name,它提供了一个命令行应用command-line-app-name程序console_script

setup.py:

setup(
    ...
    entry_points={"console_scripts": ["command-line-app-name=package_name.cli:main"]},
    ...
)
Run Code Online (Sandbox Code Playgroud)

virtualenv 位于<project>/.venv并由pipenv. pipenv托管 venvs 应支持 VSCode 调试集成。我创建了一个调试器配置launch.json文件,并将 Python 路径设置为 venv ( pythonPath):

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: command-line-app-name",
            "type": "python",
            "request": "launch",
            "stopOnEntry": false,
            "program": "command-line-app-name",
            "linux": {
                "pythonPath": "${workspaceFolder}/.venv/bin/python", …
Run Code Online (Sandbox Code Playgroud)

python visual-studio-code vscode-debugger

7
推荐指数
1
解决办法
5150
查看次数

如何在 VS-Code 中关闭或关闭调试模式

我在 VS Code 中打开了调试模式,现在想将其关闭,但不知道如何关闭。

我有这个浮动菜单: 在此输入图像描述

我的底部工具栏仍然是橙色的:在此输入图像描述

我如何恢复到原来的设置?(我在其他帖子上看到人们想要隐藏浮动菜单,但我想如果可能的话我想关闭调试?)

reactjs visual-studio-code vscode-debugger

7
推荐指数
2
解决办法
1万
查看次数

更新到 VS Code 1.66.0 后调试 Python 程序不起作用

今天(2022年3月31日)我让自动更新功能将我的版本更新VS Code到最新版本1.66.0 Windows。此后,我的正常调试过程不再起作用:当我按F5时,调试控制面板闪烁并立即消失,没有任何其他反应。我在输出和终端窗口上找不到任何有用的错误消息。我的launch.json文件如下所示:

{
        "name": "DEBUG",
        "type": "python",
        "request": "launch",
        "program": "${workspaceFolder}\\starting.py",        
        "console": "integratedTerminal",    
        "justMyCode": false,
    }
Run Code Online (Sandbox Code Playgroud)

我尝试将console上面的内容更改为externalTerminal但没有帮助。有人可以告诉我如何找出这里发生了什么吗?

干杯,

python visual-studio-code vscode-debugger

7
推荐指数
2
解决办法
8782
查看次数