突然,VS Code调试Go程序,设置断点无效了。现象:设置断点时,断点还为红色实心点,但是一启动调试,断点全变成灰色的空心小圆圈了,程序也不在断点处停止,而是无视断点直接运行了。
还是首先要回忆在正常和不正常之间干了什么。原来,我嫌程序源码所在路径太深,就用”ln -s” 添加了一个软连接,然后打开文件夹的过程就快速了一些。但是导致结果是VS Code的断点就失效了。
解决方法是在VS Code的launch.json中添加substitutePath字段,如下所示:
{ // 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}",
"args": [],
"substitutePath": [{"from": "软链接路径,如/home/user/dev", "to": "实际目标路径,如/data00/gvfs/1000/share/user/dev"}]
}
]
}