windows wsl2 vscode golang debug不生效问题排查

这篇具有很好参考价值的文章主要介绍了windows wsl2 vscode golang debug不生效问题排查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现象1,golang代码断点不生效

golang vscode点击Run-> Start Debugging后,看到正常的debug 调用dlv-dap,但是没有命中断点。
原因是我用的wsl2 remote, 默认代码保存在windows上,在wsl里看到的是/mnt/c/xxx的目录,为了在linux中方便使用建立了软连接。最后导致打断点时日志报找不到go文件。

排查思路:
1、在.vscode/launch.json中开启日志详情

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "debugAdapter": "dlv-dap",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}",
            "trace": "verbose", // 日志详细打印
        }
    ]
}

然后再点debug执行,看到debug console里报如下错误
Error create Breakpoint,… no go file in /xxxx/xxxx/

查询github issue, 发现时软链接导致的,所以添加如下配置。

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "debugAdapter": "dlv-dap",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}",
            "trace": "verbose",
            // 添加配置
            "substitutePath": [
                {
                 "from": "/you/soft/link/path/",  // 软链路径
                 "to": "/mnt/c/Users/xxx/real/path/",  //实际路径
                },
            ]
           
        }
    ]
}

配置完成后再点debug断点可以工作了。

现象2, 在现象1修复后,发现执行go 单元测试,右键 debug test时仍然无法命中断点

原因分析:
golang 单元测试,调用的配置文件时settings.json, 需要同样添加软链配置文章来源地址https://www.toymoban.com/news/detail-772174.html

{
    "go.delveConfig": {
        "showLog": true,
        "debugAdapter": "legacy",
        "substitutePath": [
            {
             "from": "/you/soft/link/path/",  // 软链路径
             "to": "/mnt/c/Users/xxx/real/path/",  //实际路径
            },
        ]
    },
    "go.testEnvVars": {
        "CGO_ENABLED": "0"
    },
    "gopls": {
    },
}

到了这里,关于windows wsl2 vscode golang debug不生效问题排查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【已解决】Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

    很多同学拉取镜像使用一段时间后发现 C 盘快满了,把之前用过的镜像和容器删除,发现 WSL 挂载目录的虚拟磁盘大小没有变化,非常的奇怪。 其实,不同于 WSL1, WSL2 本质上是虚拟机 ,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件

    2024年02月16日
    浏览(72)
  • windows wsl2 docker+k8s+cuda容器无法启动问题解决

    docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #1: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as \\\'legacy\\\' nvidia-container-cli: mount error: file creation failed: /var/lib/docker/overl

    2024年02月13日
    浏览(36)
  • 【dev on wsl2】wsl2 with vscode简单配置

    1.1 安装方式选择: 安装wsl2一般来说有三种方式: cmd/powershell 命令行安装(建议管理员模式) microsoft store 安装 microsoft 官网安装 ps: win + R调出运行框,输入\\\"winver\\\" 查看 Windows 版本及内部版本号 ① 命令行安装wsl的先决条件是必须运行 Windows 10 版本 2004 及更高版本(内部版本

    2024年02月05日
    浏览(28)
  • windows子系统-wsl命令基础用法和无响应问题排查及解决方法

    微软帮助手册 手动安装步骤 设置用户名密码 疑难接单 wsl基础命令 博文资料 安装问题排查 若要更新到 WSL 2,需要运行 Windows 10。 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。

    2024年02月11日
    浏览(29)
  • windows10安装wsl2

    注意: 在安装wsl_update.msi前要重启一次 https://zhuanlan.zhihu.com/p/355276815

    2024年02月11日
    浏览(33)
  • window11开启wsl2

    以前玩linux,总是习惯装双系统,其实双系统特别麻烦。wsl现在的功能其实挺强大的,完全可以代替双系统,去完成一些在linux上的环境搭建。这篇文章记录下window11如何开启wsl2功能,并且安装ubuntu系统。 控制面板 =》程序 =》启用或关闭Windows功能 =》勾选上适用于Linux的Wind

    2023年04月24日
    浏览(32)
  • WSL2+windows terminal

    WSL2的安装与使用-Windows与Linux双系统的新选择 既要使用Windows系统满足日常生活,协作办公,又要使用Linux系统满足开发工作,双系统来回重启比较麻烦,双主机成本高,远程服务器又有很多限制,WSL也许是更好的解决方案,可以摆脱以上困扰。 1. WSL是什么 WSL全称 Windows Subs

    2024年02月06日
    浏览(38)
  • 基于WSL2+Docker+VScode搭建机器学习(深度学习)开发环境

    内容概述 :由于最近配发了新的工作电脑但不想装双系统,因此通过本博文来记录基于Windows子系统WSL+Docker搭建机器学习与深度学习开发环境的流程步骤,同时记录该过程中所遇到的相关问题及解决方案。期待为同行学习者提供参考; 最终效果 :在Windows电脑上,无需安装

    2024年02月04日
    浏览(29)
  • Windows wsl2安装Ubuntu

    wsl(Windows Subsystem for Linux)即适用于Windows的Linux子系统,是一个实现在Windows 10 / 11上运行原生Linux的技术。 wsl2 为其迭代版本,可以更好的在Windows上运行Linux子系统。 这里以 Windows 11 安装Ubuntu作为示例。 按 Win 键,点击 设置 。 搜索 控制面板 。 点击 程序 。 点击启用或关闭

    2024年02月09日
    浏览(33)
  • windows10安装wsl2,centos内核

    检查系统环境 必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。 一、开启WSL2特性 【控制面板】【程序】【程序和功能】【启用或关闭Windows功能】 二、下载Linux内核更新包 下载 双击安装 三、设置WSL2为默认版本 四、下载安

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包