作者有话说
继上周成功调试后出现时间超时问题,且想定位create_index等如何触发milvus底层实现文件,总是报错Timeout,这周碎片化抽空解决此问题,猜测可能是vscode配置的调试环境有问题,果不其然!
报错
grpc时间超时问题。
原因剖析
milvus启动单机成功,测试官方提供的Python SDK脚本文件可以跑出正确结果。
然而,通过vscode调试就常出现断连问题,且无法定位断点位置。故猜测,可能与vscode配置的调试环境有关。
解决方案
将源码部署Milvus(二)的调试环境launch.json更换为:
{"version": "0.2.0","configurations": [{"name": "Debug Milvus_cp1.1","type": "go","request": "attach","program": "../bin/milvus","args": ["run","standalone"], // Any arguments the program needs"stopAtEntry": false,// "cwd": "${workspaceFolder}","cwd": "~/milvus_cp1.1","environment": [],"externalConsole": false,"MIMode": "auto","env":{"GOPATH": "~/go","GOROOT": "~/go"},"preLaunchTask": "" // Task to run before debugging, like 'build'}]
}
注意对应替换
- “program”: “…/bin/milvus” 这里填写存放已编译生成的二进制milvus文件
- “cwd”: “~/milvus_cp1.1” 这里填写milvus的开源根目录绝对路径
- "env"需加上自己服务器配置的GO环境
- “MIMode”: “auto” 有些博客配置写得是“mode":“auto”,我这样写会报错。”MIMode"则正常
查看命令:
go env
将GOPATH
和GOROOT
路径复制到此即可~
总结
在配置 VSCode 的 launch.json
以调试 Go 程序时,通常不需要专门配置 gdb
相关的设置。Go 通常使用 delve
作为其主要的调试工具,而不是 gdb
。delve
提供了更好的 Go 语言支持,包括对 goroutines
和 channels
的支持,以及更好的集成到 Go 的类型系统中。