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。