当前位置: 首页 > news >正文

在Goland中对goroutine协程断点调试

在Goland中对goroutine协程断点调试

  • 环境: Goland
    • 参考了 chatgpt 的回复
  • 进行断点调试的代码
package mainimport ("fmt""sync""time"
)// worker 模拟处理任务
func worker(id int, wg *sync.WaitGroup) {defer wg.Done() // 确保任务完成后通知 WaitGroupfor i := 0; i < 5; i++ {fmt.Printf("Worker %d: Processing step %d\n", id, i)time.Sleep(500 * time.Millisecond) // 模拟耗时任务}fmt.Printf("Worker %d: Task completed\n", id)
}func main() {var wg sync.WaitGroup// 启动 3 个 goroutinefor i := 1; i <= 3; i++ {wg.Add(1)go worker(i, &wg)}fmt.Println("All workers started. Waiting for completion...")wg.Wait() // 等待所有任务完成fmt.Println("All workers completed.")
}
  • worker 函数内 fmt.Printf("Worker %d: Processing step %d\n", id, i) 这一行设置断点
  • Goland 配置调试
    在这里插入图片描述
    在这里插入图片描述
  • 当程序在断点暂停时,打开 Goroutines 面板,查看当前所有运行的 goroutine
    在这里插入图片描述
  • 使用调试工具中的 Step Over (F8)Step Into (F7),逐步分析协程的行为
  • 在 Variables 面板中查看每个协程的局部变量(如 id i 的值)
    在这里插入图片描述
http://www.lryc.cn/news/501858.html

相关文章:

  • 解密分布式锁:保障系统一致性的关键
  • Redis 击穿、穿透与雪崩:深度解析与应对策略
  • 8086处理器的寻址方式
  • Mask实现裁剪的原理浅析
  • 每隔一秒单片机向电脑发送一个16进制递增数据
  • 逆向攻防世界CTF系列56-easy_Maze
  • 【Linux网络编程】应用层:HTTP协议 | URL | 简单实现一个HTTP服务器 | 永久重定向与临时重定向
  • 电压调整电路汇总
  • day28 文件IO及进程线程基础
  • 【Azure 架构师学习笔记】- Azure Function (1) --环境搭建和背景介绍
  • 前端文件下载
  • 前端成长之路:HTML(3)
  • 无人机自动机库的功能与作用!
  • ubuntu 新建脚本shell并增加图标 双击应用实现python运行
  • ANR 分析SOP
  • COLA学习之环境搭建(三)
  • CSS输入框动态伸缩动效
  • hbuilder 安卓app手机调试中基座如何设置
  • 探索视觉与语言模型的可扩展性
  • sock_recvmsg函数
  • HCIA笔记8--DHCP、Telnet协议
  • Scala的单例对象
  • 【笔记】分布式任务调度平台XXL-JOB
  • PDFMathTranslate,PDF多语言翻译,批量处理,学术论文,双语对照(WIN/MAC)
  • zerotier实现内网穿透(访问内网服务器)
  • Formality:set_svf命令
  • IDEA报错:无效的源发行版、无效的目标发行版
  • #渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit插件使用及编写01
  • Scala中求斐波那契数列的第n项
  • ORACLE修改序列值为表内某字段(主键)最大值