VSCode调试配置
如何用调试运行任意命令
原文:https://stackoverflow.com/a/75957773
launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node-terminal",
"request": "launch",
"name": "<name>", // e.g. "前端"
"cwd": "${workspaceFolder}",
"command": "<command>" // e.g. "pnpm dev"
},
]
}
Golang调试无法命中断点
原文:https://cloud.tencent.com/developer/article/2345677
在VSCode中连接远程服务器(如DevBox)调试Golang程序时,无法命中断点。
原 launch.json
如下所示:
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "backend",
"type": "go",
"request": "launch",
"mode": "debug",
"cwd": "${workspaceFolder}/backend",
"program": "${workspaceFolder}/backend",
},
]
}
其中 ${workspaceFolder}
的值为 /home/ddi/projects/go1
,
而 /home/ddi/projects
为一个软链接到 /data/projects
目录,
/home/ddi
在 sda1
,/data
在 sdb1
。
根本原因
dlv
将软链接文件装载为指向的物理文件,VSCode传入的是软链接路径,
二者路径不一致,dlv
装载的内容不包含软链接路径。
解决方法
方法一:添加路径映射
在launch.json
中添加路径替换配置:
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "backend",
"type": "go",
"request": "launch",
"mode": "debug",
"cwd": "${workspaceFolder}/backend",
"program": "${workspaceFolder}/backend",
"substitutePath": [
{
"from": "/home/ddi/projects",
"to": "/data/projects"
}
]
},
]
}
方法二:使用物理路径
在VSCode中打开的路径使用物理路径/data/projects/go1
而非软链接路径/home/ddi/projects/go1
。