[英]how to specify the path of generated debug binary file when debug go-lang in vs-code
我试过修改launch.json文件,但不起作用。 我现在可以用vs代码很好地调试go程序了,唯一的问题是每次我完成调试时,都会在我的项目目录下生成一个调试二进制文件,如下图所示。
我想知道我可以指定生成的调试二进制文件的目录吗?
我在Mac屏幕上显示了我的问题:
其次是vscode-go问题1345 :“在关闭调试会话后删除由delve创建的二进制文件”
delve
是Golang的调试器,或者至少是Go扩展使用的调试器。
当您使用delve调试某些内容时,它将在当前目录中创建一个大型二进制文件。 如果调试主要功能(dlv debug
),则会得到'debug
'。 如果您调试测试功能(dlv test
),则会得到“debug.test
”。在常规的delve用法中,完成后就退出delve。 然后,Delve删除该文件。 显然,VSCode会优雅地终止(SIGKILL?)钻探,这意味着文件会卡住。
因此,对此进行了研究, 但尚未解决 。
我终于有了更新!
事实证明, 有一个名为
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
,则克隆此存储库(vsgo),并使用克隆的存储库中的Go-latest.vsix
文件- 重新加载VS代码
只要所调试的程序不会像Web服务器那样产生自己的进程(我已用delve记录了上游问题),该修补程序就对我有用。
如果这里的人可以尝试一下并分享任何反馈,我将不胜感激。
您需要执行的更改才能为生成的调试二进制文件提供输出路径,该更改位于
launch.json
文件中。
在调试配置中使用属性输出。
请不要修改package.json
文件。
此调试文件是在调试时由delve生成的,应在调试后将其删除,这似乎是vs-code的go扩展的错误,请参见此处的链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.