Golang在VSC中如何进行调试

Golang在VSC中如何进行调试 我正在使用VSC学习Go语言。

我尝试调试Go代码。我设置了一个断点,并且它确实命中了。

但是当我尝试单步执行到下一行时,调试器却打开了一个名为proc.go的文件并显示一条消息:

image

我只是想在按下“单步跳过”时转到下一行代码。

那么我在这里做错了什么?

3 回复

好方法

更多关于Golang在VSC中如何进行调试的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


通过点击编辑器中的行号来在代码中设置断点,断点处即为您希望执行暂停的位置。断点有助于您在程序执行过程中的特定时刻检查其状态。

在VSCode中调试Go时遇到proc.go文件被打开的问题,通常是因为调试器进入了runtime的内部函数。这可以通过调整调试配置来解决。以下是具体的解决方案:

  1. 修改launch.json配置: 在VSCode中,打开或创建.vscode/launch.json文件,添加"showLog": true和调整"trace"设置,这有助于查看调试器的详细行为。同时,可以设置"showGlobalVariables"来限制显示全局变量,避免进入系统调用。

示例配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}",
            "showLog": true,
            "trace": "verbose",
            "showGlobalVariables": false
        }
    ]
}
  1. 使用skipFiles设置: 在launch.json中,通过"skipFiles"选项可以让调试器跳过特定的文件或路径,避免进入runtime或标准库的内部代码。例如,跳过所有runtime文件:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}",
            "skipFiles": [
                "runtime/*",
                "**/proc.go"
            ]
        }
    ]
}
  1. 检查Go工具版本: 确保使用的Go版本与VSCode的Go扩展兼容。更新Go扩展和Go工具链到最新版本,有时可以解决调试器的问题。在终端中运行:
go version

并检查VSCode的Go扩展版本(通常通过扩展市场更新)。

  1. 调试操作说明: 在调试过程中,使用“单步跳过”(Step Over,F10)而不是“单步进入”(Step Into,F11)。如果意外进入了runtime代码,可以使用“单步跳出”(Step Out,Shift+F11)返回到自己的代码。

如果问题仍然存在,可以尝试在VSCode的输出面板中查看调试控制台日志,以获取更详细的错误信息。这有助于进一步定位问题。

回到顶部