vscode如何debug调试golang代码

 更新时间:2024年03月15日 11:25:09   作者:我欲乘风归去...  
古话说工欲善其事必先利其器,Go语言程序的开发者而言,当下最火的IDE应该非微软的Visual Studio Code莫属,本文主要介绍了vscode如何debug调试golang代码,感兴趣的可以了解一下

开发golang我们一般会使用IDE软件,也有直接使用vim编辑器的,我比较倾向于使用IDE,试了IDEA,liteIDE,goclipse都有自己不满意的地方,没想到最终使用了VScode,一开始让我眼前一亮的是代码跳转速度,之后发现debug也方便,于是就决定用着看看。

一、假设你的golang项目代码是在vscode终端以go run main.go -e dev来启动的,那么打开用vscode打开项目目录

二、在VSCode的侧边栏中,点击调试图标(虫子图标)打开调试视图。

三、点击调试视图顶部的"create a launch.json file"链接。这将创建一个名为launch.json的文件,用于配置调试任务。

四、在launch.json中,找到并修改 "configurations" 部分,

添加以下配置示例:(如果是go run main.go运行这个项目的,不需要最后一个arg参数)

{
    "name": "Launch",
    "type": "go",
    "request": "launch",
    "mode": "debug",
    "program": "${workspaceFolder}/main.go",
    "args": ["-e", "dev"]
}

这样,你就配置了一个名为"Launch"的调试任务,它将启动主文件main.go并传递 -e dev 参数。

五、设置断点:在你想要设置断点的地方使用鼠标右键单击左侧的行号,然后选择"Toggle Breakpoint"。你还可以在代码中手动插入log.Println语句作为临时断点。

六、启动调试:(先打开main.go文件,确保文件位置定位到这里)点击调试视图顶部的绿色启动按钮或按下F5键来启动调试会话。
或者按照下图直接运行和调试:

七、启动后,打开接口工具或者文档,发送接口请求

八、调试过程:当代码执行到你设置的断点处时,它将暂停执行。你可以使用调试工具栏上的控制按钮(如继续、单步执行等)以及观察变量和堆栈信息来检查代码的执行情况。

到此这篇关于vscode如何debug调试golang代码的文章就介绍到这了,更多相关vscode debug调试golang内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • LRU LFU TinyLFU缓存算法实例详解

    LRU LFU TinyLFU缓存算法实例详解

    这篇文章主要为大家介绍了LRU LFU TinyLFU缓存算法实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Go使用Weighted实现资源管理

    Go使用Weighted实现资源管理

    这篇文章主要介绍了Go 语言中的 Weighted 并发原语,包括 Weighted 的基本使用方法、实现原理、使用注意事项等内容,感兴趣的小伙伴可以了解一下
    2023-06-06
  • golang中定时器cpu使用率高的现象详析

    golang中定时器cpu使用率高的现象详析

    这篇文章主要给大家介绍了关于golang中定时器cpu使用率高的现象的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • Go type关键字(类型定义与类型别名的使用差异)用法实例探究

    Go type关键字(类型定义与类型别名的使用差异)用法实例探究

    这篇文章主要为大家介绍了Go type关键字(类型定义与类型别名的使用差异)用法实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Go语言通过WaitGroup实现控制并发的示例详解

    Go语言通过WaitGroup实现控制并发的示例详解

    Channel能够很好的帮助我们控制并发,但是在开发习惯上与显示的表达不太相同,所以在Go语言中可以利用sync包中的WaitGroup实现并发控制,本文就来和大家详细聊聊WaitGroup如何实现控制并发
    2023-01-01
  • 深入理解Golang make和new的区别及实现原理

    深入理解Golang make和new的区别及实现原理

    在Go语言中,有两个比较雷同的内置函数,分别是new和make方法,二者都可以用来分配内存,那他们有什么区别呢?下面我们就从底层来分析一下二者的不同。感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助
    2022-10-10
  • 详解Go如何实现协程并发执行

    详解Go如何实现协程并发执行

    线程是通过本地队列,全局队列或者偷其它线程的方式来获取协程的,目前看来,线程运行完一个协程后再从队列中获取下一个协程执行,还只是顺序执行协程的,而多个线程一起这么运行也能达到并发的效果,接下来就给给大家详细介绍一下Go如何实现协程并发执行
    2023-08-08
  • Golang运行报错找不到包:package xxx is not in GOROOT的解决过程

    Golang运行报错找不到包:package xxx is not in GOROOT的解决过程

    这篇文章主要给大家介绍了关于Golang运行报错找不到包:package xxx is not in GOROOT的解决过程,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-07-07
  • 深入探究Golang中flag标准库的使用

    深入探究Golang中flag标准库的使用

    在本文中,我们将深入探讨 flag 标准库的实现原理和使用技巧,以帮助读者更好地理解和掌握该库的使用方法,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-04-04
  • Golang实现基于Redis的可靠延迟队列

    Golang实现基于Redis的可靠延迟队列

    redisson delayqueue可以使用redis的有序集合结构实现延时队列,遗憾的是go语言社区中并无类似的库。不过问题不大,本文将用Go语言实现这一功能,需要的可以参考一下
    2022-06-06

最新评论