我正在尝试使用Go v1.20.3在VSCode中调试一个.go文件。在vscode的左侧面板中,单击Debug图标>单击Gear图标以创建配置文件。(launch.json)
我的launch.json文件如下所示。(自动创建)
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
// "program": "${fileDirname}"
"program": "${workspaceRoot}"
我改了原来的“方案”:“${fileDirname}”到“program”:“${workspaceRoot}”希望其中一个可以工作。
当我在调试控制台(终端部分)中执行F5(运行调试器)时,我得到以下错误:
Starting: C:\Users\Shawn\go\bin\dlv.exe dap --listen=127.0.0.1:60824 from C:\Users\Shawn\go\vsCodeExam.vscode
DAP server listening at: 127.0.0.1:60824
Build Error: go build -o C:\Users\Shawn\go\vsCodeExam.vscode__debug_bin.exe -gcflags all=-N -l .
go: no modules were found in the current workspace; see 'go help work' (exit status 1)
我每次都注解掉了两个(“program”:...)。(意思是分别运行两个(“program”:...)的调试,但是不管(“program”:...)的值是多少,我都没有运气,我得到了上面显示的错误。
我仍然在阅读更多关于vscode中调试的内容,但没有指出缺少哪些模块?或者除了模块之外还有什么问题。
1条答案
按热度按时间c90pui9n1#
不可能孤立地“调试文件”;需要有某种类型的可执行文件来调用被调试的代码。它要么是测试,要么是代码所属的程序(要么是实际程序,要么是某种形式的测试工具)。
所以很多事情都取决于你所说的“* debuga.go文件 *"。
如果该文件是测试的一部分,那么您根本不需要启动文件;您可以使用VS Code的Go扩展提供的go测试集成来调试(test)文件中的测试或单个测试。
如果(文件中的代码)没有被任何测试覆盖,那么你将需要一个启动文件,该文件标识一个带有
main()
函数的模块文件夹,该文件夹用于执行你试图调试的代码。根据我的经验,进行测试是对go代码进行特别的交互式调试的最简单的方法(同样,进行测试意味着不必经常进行交互式调试!)