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

golang debug调试

1. 本地调试

1:Add Configurations 添加配置文件(Run kind :Directory)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2:进入run运行窗口

在这里插入图片描述
在这里插入图片描述

3:debug断点调试模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. Resume Program (继续运行)
图标: ?? 或 ?
快捷键: F9(Windows/Linux)、Command+Option+R(Mac)
作用: 程序会继续运行直到下一个断点或调试结束。如果没有更多断点,程序会正常执行至结束。
2. Step Over (单步跳过)
图标: ?
快捷键: F8(Windows/Linux)、Command+F8(Mac)
作用: 单步执行当前代码行,但不会进入函数内部(如果当前行是函数调用,会跳过函数内部的执行)。
3. Step Into (单步进入)
图标: ??↘?
快捷键: F7(Windows/Linux)、Command+Option+Down(Mac)
作用: 进入当前行调用的函数内部进行调试。如果该行没有函数调用,则执行下一行代码。
4. Step Out (单步返回)
图标: ↖???
快捷键: Shift+F8(Windows/Linux)、Command+Option+Up(Mac)
作用: 跳出当前函数,返回到调用此函数的上一层,并暂停在那里。
5. Evaluate Expression (表达式求值)
图标: ??
快捷键: Alt+F8(Windows/Linux)、Option+F8(Mac)
作用: 允许你在调试过程中动态评估某个表达式的值,非常适合临时检查复杂变量或表达式的运行结果。
6. Show Execution Point (显示当前执行点)
图标: ?? 或 ??
快捷键: Alt+F10(Windows/Linux)、Option+Command+P(Mac)
作用: 跳转到当前程序执行的代码位置(特别适合在查看其他文件后快速回到当前断点)。
7. Drop Frame (回退当前栈帧)
图标: ??
作用: 重置当前栈帧的状态,从当前函数重新执行一遍。这不会改变全局程序状态,仅适用于当前函数调用。
8. Stop (停止调试)
图标: ■
快捷键: Ctrl+F2(Windows/Linux)、Command+F2(Mac)
作用: 停止调试会话,终止当前调试运行。
9. Mute Breakpoints (屏蔽断点)
图标: ???(小喇叭)
作用: 暂时禁用所有断点,但不删除。程序会无视所有断点直接运行。
10. View Breakpoints (查看断点列表)
图标: ???
快捷键: Ctrl+Shift+F8(Windows/Linux)、Command+Shift+F8(Mac)
作用: 打开断点管理窗口,方便查看、启用、禁用或删除断点。
如法炮制,下面是Run kind另外两种调试:
Run kind :Package

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Run kind :File

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 附加到进程

1:安装插件
go install github.com/google/gops@latest

在这里插入图片描述
在这里插入图片描述

2:编译指定参数
go build -gcflags="all=-N -l" -o demo.exe

在这里插入图片描述

3:附加到进程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 远程调试

1:设置编译环境变量
$Env:CGO_ENABLED=0;$Env:GOARCH="amd64";$Env:GooS="linux"

在这里插入图片描述

2:编译运行文件
# 命令二选一皆可以
go build -o main .main.go
go build -gcflags="all=-N -l" -o main

在这里插入图片描述

3:上传到服务器执行(使用ftp工具或者rz命令上传都行)
sudo chmod +x main

在这里插入图片描述

4:服务器需要安装go环境,这里不讲解,自行安装

在这里插入图片描述

5:服务器安装调试工具,进行进程监控转发,远程调试
go install github.com/go-delve/delve/cmd/dlv@latest

在这里插入图片描述

6:配置远程调试
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./main -- -j=10

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面是远程调试的另一种方式
1:通过进程id监控
ps -aux | grep main		//查看进程信息
dlv --listen=:2345 --headless=true --api-version=2 attach 898805		//添加进程

在这里插入图片描述
在这里插入图片描述

2:进入debug

在这里插入图片描述


文章转载自:

http://op0Fw9fP.tkfnp.cn
http://FWeN64kl.tkfnp.cn
http://G70yJQjz.tkfnp.cn
http://MfGryy7t.tkfnp.cn
http://gsZvuBdy.tkfnp.cn
http://w1s1HyvS.tkfnp.cn
http://FBMOs9rL.tkfnp.cn
http://lqby1Bvr.tkfnp.cn
http://gL38paax.tkfnp.cn
http://XgTv3T1D.tkfnp.cn
http://5emrGuhK.tkfnp.cn
http://rvQuPlhM.tkfnp.cn
http://mX3X9r4m.tkfnp.cn
http://p53cyJMT.tkfnp.cn
http://FkryCaVA.tkfnp.cn
http://8XeO5HQc.tkfnp.cn
http://HGJDzCSO.tkfnp.cn
http://1kRp1xe8.tkfnp.cn
http://CHA8Je76.tkfnp.cn
http://WvstX4wT.tkfnp.cn
http://MYISFPeW.tkfnp.cn
http://LjFOC6zH.tkfnp.cn
http://B00H7v9G.tkfnp.cn
http://sgZzuAvP.tkfnp.cn
http://wVjRlVQZ.tkfnp.cn
http://fLQO7teB.tkfnp.cn
http://u2Q8k3jX.tkfnp.cn
http://Mx3qPXRD.tkfnp.cn
http://vL57hyjl.tkfnp.cn
http://JwuBrgfX.tkfnp.cn
http://www.dtcms.com/a/52748.html

相关文章:

  • 集成的背景与LLM集成学习
  • 2025年渗透测试面试题总结- 深某服-漏洞研究员实习(题目+回答)
  • 工厂方法模式的C++实现示例
  • RabbitMQ的四种交换机
  • JavaScript 数组和字符串方法详解
  • Java中的时间类型
  • 智慧园区大数据云平台建设总体方案,平台方案架构-智慧园区大数据平台(320页原件Word)
  • 知识篇 | 低代码开发(Low-Code Development)是个什么东东?
  • 中兴移动互联终端三剑齐发 AI、5G-A、WiFi7构建高效智能网络
  • 132. 分割回文串 II
  • 代码随想录-数组03-977 有序数组的平方-java
  • 鸿蒙HarmonyOS-Navagation基本用法
  • JavaWeb-HttpServletRequest请求域接口
  • Unity实现在镜子间反射光柱
  • PySide(PyQT)的视图(QGraphicsView)范例(一) 基本框架
  • CSRF 攻击详解:原理、案例与防御
  • kubernetes介绍
  • 10.RabbitMQ集群
  • 【大数据项目】计算机行业招聘数据处理与分析系统
  • 2025.3.3总结
  • 面试基础---MySQL 事务隔离级别与 MVCC 深度解析
  • Mac安装配置使用nginx的一系列问题
  • git 学习笔记
  • 【消息队列】BrokerServer的核心概念
  • 在Electron中通过Node-API调用DLL导出函数的完整指南
  • 神经网络前向微分和后向微分区别
  • 面试题汇总(一)
  • 机器学习4-PCA降维
  • CMake学习笔记(一):工程的新建和如何将源文件生成二进制文件
  • conda 更换镜像究极方法