我尝试修改launch.json文件但不起作用。 我现在可以在vs-code中很好地调试程序,唯一的问题是每次我完成调试,在我的项目目录下生成一个调试二进制文件,如下图所示。
我想知道我可以指定生成的调试二进制文件的目录吗?
我正在拍摄我的问题:
答案 0 :(得分:0)
接下来是vscode-go issue 1345:“关闭调试会话后删除由delve创建的二进制文件”
delve
是Golang的调试器,或者至少是Go扩展使用的调试器。 使用delve调试某些内容时,它会在当前目录中创建一个大型二进制文件。如果您调试主函数(dlv debug
),则会得到“debug
”。如果您调试测试函数(dlv test
),则会得到“debug.test
”。在正常的钻研用法中,当你完成后,你就退出了钻石。 Delve然后删除此文件。显然VSCode没有优雅地终止(SIGKILL?)钻孔,这意味着该文件会一直存在。
所以这是研究,但尚未解决。
2018年7月更新: Ramya Rao 添加this issue:
我终于有了更新!
结果有一个名为
Detach
的命令可以在delve
服务器上调用,这将导致生成的调试二进制文件所需的清理。
要在下一次更新Go扩展程序(将在星期五或下周初)之前获得此修复程序,请按照以下说明操作:
- 下载https://github.com/Microsoft/vscode-go/blob/master/Go-latest.vsix
- 运行
code --install-extension Go-latest.vsix
如果上述内容因Error: end of central directory record signature not found
失败,则克隆this repo (vsgo)并使用克隆回购邮件中的Go-latest.vsix
文件- 重新加载VS代码
只要正在调试的程序没有产生自己的进程(例如我已经使用deve记录了上游问题的Web服务器),该修复程序对我有用。
我很感激,如果这里的人可以尝试修复并分享任何反馈。
为生成的调试二进制文件提供输出路径所需的更改位于
launch.json
文件中。
在调试配置中使用属性输出 请不要修改package.json
文件。
答案 1 :(得分:0)
这个调试文件是在调试时通过钻取生成的,应该在调试后删除,这似乎是vs-code的扩展错误,请参阅链接here