今天调试Go程序的时候,死活打不到断点上,编译的时候明明都加了-gcflags='-N -l'
参数了,还是不行。最后发现是这个破开发机的home目录软链接问题,/home
是/xxx/home
软链过来的,VSCode Remote运行的时候使用的是/xxx/home
,但是程序开dlv的时候的时候走的是~
也就是/home
,于是断点没有成功打到对应文件上。真蠢。把VSCode的文件目录改成/home
的就好了。
PS: 程序运行环境存在一堆trick,导致只能手动启dlv然后VSCode使用远程调试模式来搞,实在蛋疼。虽然还是在本地的。附一个远程调试配置:
//远程调试
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "attach",
"mode": "remote",
// "remotePath": "",
"port": 2345,
"host": "127.0.0.1",
"showLog": true,
"trace": "verbose"
}
]
}
"trace": "verbose"
用来输出debug的log信息,我就是通过这个找到问题的原因的。
Comments
注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。