vs code那些坑

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/love666666shen/article/details/88068492

vscode调试golang程序基本配置

在Mac上调试程序时,需要在launch.json中进行相应的配置。配置过程如下:
1.command + shift + p快速调出快捷键搜索栏
2.在搜索栏中输入launch.json,选择Debug: Open launch.json
3.在launch.json中进行配置type、mode、program、env、showLog等的配置
在这里插入图片描述
name   随意配置;
port     只要不是常用的端口,应该就不会存在冲突了,随意配置;
program  配置Go项目启动文件路径,即main函数所在的.go文件的路径,
      ${workspaceRoot}代表项目的根目录,
      也就是 /bin /pkg /src这三个文件夹所在的目录;***
env    可以用来
配置调试启动时所用的环境变量参数,
      比如gopath临时设置为某个参数就可以在这里指定,
      如果有多个gopath,用英文冒号:来连接多个gopath;
*
trace   可以打印Delve执行的日志,在控制台会输出这个日志的目录,现在"trace"现在
有三个值:“error”、“log”、“verbose”。

配置注意事项

在配置VScode时,在命令行下能跑通,导入到vs code中发现包的路径与环境变量配置不一致。解决方式,在vs code中,需要在编辑器的USER SETTINGS中单独设置GOPATH的路径(添加"go.gopath": “GOPATH的路径”,这里的GOPATH的路径为src/bin目录所在的路径)。

开发的golang项目必须保存在配置环境的GOPATH下的src目录下,这样才能通过配置的路径找到源代码的位置。

同一个目录下的多个源文件必须使用同一个包名,该包名尽量与源文件的上一级目录名一致。在同一个项目中需要有一个main包,在main包中导入自定义的包时,只需要导入到源代码上一层的子目录下即可。

出现的问题

Failed to continue: Check the debug console for details问题

在使用VS Code 调试 Golang 时,出现 Failed to continue: Check the debug console for details问题。
解决方式:
点击Open launch.json,在env里面添加go.gopath(注意不是自己设置的GOPATH环境变量的名字,要不然vscode会无法辨认)路径(将其设置为环境变量中GOPATH的路径即可,Mac下可以通过echo $GOPATH命令查看该路径)。设置完之后,在需要的调试处打断点,当前页面返回到main.go所在的主程序窗口,进行debug,否则vs code会找不到程序入口,出现如下的提示信息,可以进行下面的设置从任意源码处开始调试。

go run: cannot run non-main package
Process exiting with code: 1

再把program的值修改为以下

"program": "${workspaceRoot}/src"

为何把program的值从 f i l e D i r n a m e {fileDirname}改为 {workspaceRoot}/src, 原因是:
1、VS Code会根据program所描述的路径来运行go文件;
2、一个项目只能有一个main函数,打断点的地方不一定是main.go文件;

总的来说,如果program的值为 f i l e D i r n a m e T o o l . g o V S C o d e T o o l g o f i l e D i r n a m e T o o l . g o T o o l {fileDirname},我点击Tool.go文件,再点击调试按钮,那么VS Code就会运行Tool文件夹下所有go文件,fileDirname从字面意义就能得知是文件所在的文件夹名字,Tool.go文件所在文件夹名字就是Tool, {fileDirname}现在就是指运行Tool文件夹内所有go 文件,但是我main函数在main.go里面,而main.go在src文件夹里面,所以调试是不可能运行起来的,一样会弹出Failed to continue: Check the debug console for details.提示,(当然,如果你不嫌麻烦,先点击main.go再点击调试按钮,也能跑起来) 而把 f i l e D i r n a m e {fileDirname}替换为 {workspaceRoot},并且加上工程所在目录,就是指我运行的是src文件夹下要调试的go项目,这样main.go文件也会执行到,就不会像之前一样,点击其他go文件,运行就出错。

还有一点就是进行调试时候,输出的信息是在底部的DEBUG CONSOLE里面的打印,而不是我们正常的OUTPUT里面打印

参考:
Golang 在mac上用VSCode开发、Delve调试
https://www.cnblogs.com/ficow/p/6785905.html
MAC中vscode安装go插件填坑
https://www.jianshu.com/p/309694cea86c
VS Code 调试 Golang 出现 Failed to continue: Check the debug console for details
https://studygolang.com/articles/16924
使用vscode调试golang项目
https://zhuanlan.zhihu.com/p/26473355

猜你喜欢

转载自blog.csdn.net/love666666shen/article/details/88068492
今日推荐