debugging 在当前工作空间中未找到任何模块;(在VScode中调试.go文件)

20jt8wwn  于 2023-06-23  发布在  Vscode
关注(0)|答案(1)|浏览(365)

我正在尝试使用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中调试的内容,但没有指出缺少哪些模块?或者除了模块之外还有什么问题。

c90pui9n

c90pui9n1#

不可能孤立地“调试文件”;需要有某种类型的可执行文件来调用被调试的代码。它要么是测试,要么是代码所属的程序(要么是实际程序,要么是某种形式的测试工具)。
所以很多事情都取决于你所说的“* debuga.go文件 *"。
如果该文件是测试的一部分,那么您根本不需要启动文件;您可以使用VS Code的Go扩展提供的go测试集成来调试(test)文件中的测试或单个测试。
如果(文件中的代码)没有被任何测试覆盖,那么你将需要一个启动文件,该文件标识一个带有main()函数的模块文件夹,该文件夹用于执行你试图调试的代码。
根据我的经验,进行测试是对go代码进行特别的交互式调试的最简单的方法(同样,进行测试意味着不必经常进行交互式调试!)

相关问题