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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/926177.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

联想YOGA Pro 14s至尊版电脑找不到独立显卡(N卡)问题,也无法安装驱动的问题

问题描述 电脑是联想YOGA Pro 14s至尊版,电脑上装的独立显卡是4060,一直是能够使用独立显卡的。然而有两次突然就找不到显卡了,NVIDIA CONTROL PANEL也消失了,而且也无法安装驱动。具体表现如下: 无法连接外接显示器…

Python酷库之旅-第三方库Pandas(250)

目录 一、用法精讲 1181、pandas.tseries.offsets.BusinessMonthEnd.is_on_offset方法 1181-1、语法 1181-2、参数 1181-3、功能 1181-4、返回值 1181-5、说明 1181-6、用法 1181-6-1、数据准备 1181-6-2、代码示例 1181-6-3、结果输出 1182、pandas.tseries.offse…

【机器学习】机器学习的基本分类-监督学习-逻辑回归-Sigmoid 函数

Sigmoid 函数是一种常用的激活函数,尤其在神经网络和逻辑回归中扮演重要角色。它将输入的实数映射到区间 (0, 1),形状类似于字母 "S"。 1. 定义与公式 Sigmoid 函数的公式为: 特点 输出范围:(0, 1),适合用…

点云处理中obb算法原理和法向量求解方法

主要数学原理PCA PCA(Principal Component Analysis,主成分分析)是数据分析中的一种重要技术,通过它可以将高维数据投影到低维空间,找到数据的主要结构。在点云分析中,PCA 可以帮助我们提取点云数据中的主…

四:工具、环境准备-compute node

一:工具、环境准备-controller node 二:OpenStack环境准备-controller node 三:安装服务-controller node 四:工具、环境准备-compute node 五:OpenStack环境准备-compute node 六:安装服务-compute node 七…

力扣1382:将二叉搜索树便平衡

给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果有多种构造方法,请你返回任意一种。 如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二…

NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比

NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比 目录 NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介…

微信小程序Webview与H5通信

背景 近期有个微信小程序需要用到web-view嵌套H5的场景,该应用场景需要小程序中频繁传递数据到H5进行渲染,且需要保证页面不刷新。 由于微信小程序与H5之间的通信限制比较大,显然无法满足于我的业务场景 探索 由于微信小程序与webview的环境是…

18. C++STL 4(vector的使用, 空间增长, 迭代器失效详解)

⭐本篇重点:vector容器的使用详解 ⭐本篇代码:c学习/08.vector_test 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) 目录 一. vector的介绍 二. vector的使用 2.1 vector的定义 * 2.2 vector的迭代器和遍历 a operator[]访问 b vect…

NAT拓展

NAT ALG(NAT应用级网) 为某些应用层协议,因为其报文内容可能携带IP相关信息,而普通NAT转化无法将这些IP转化,从而导致协议无法正常运行 例如FTP,DHCP,RSTP,ICMP,IPSEC…

私有库gitea安装

一 gitea是什么 Gitea是一款自助Git服务,简单来说,就是可以一个私有的github。 搭建很容易。 Gitea依赖于Git。 类似Gitea的还有GitHub、Gitee、GitLab等。 以下是安装步骤。 二 安装sqilite 参考: 在windows上安装sqlite 三 安装git…

从零开始理解JVM:对象的生命周期之对象销毁(垃圾回收)

一、JVM参数 在学垃圾回收器之前,我们先要知道,jvm参数是怎么回事。因为配置各种回收器,必须对应各种参数设置。 标准参数(-) 所有的JVM实现都必须实现这些参数的功能,而且向后兼容 -help-version 非标准参…

C# 数据类型详解:掌握数据类型及操作为高效编码奠定基础

本文将带你深入了解C#中各种数据类型的特点、用途和最佳实践,让你不仅能熟练运用基本类型,还能掌握如何在实际项目中做出最合适的选择。 目录 C#基本语法 C#数据类型 C#类型转换 C#变量常量 C#基本语法 在学习C#之前我们要先知道C#的基础构建是由哪些…

后端-mybatis的多对多

首先准备两张表学生表和课程表,一个学生可以选多个课程,一门课程也可以被多个学生选择。 再建一个学生表和课程表的中间表,包含学生id和课程id。 我们拿查询所有学生 和他们所选的课程为例,写多对多(其实就是一对多&a…

05《存储器层次结构与接口》计算机组成与体系结构 系列课

目录 存储器层次结构概述 层次结构的定义 存储器的排名 存储器接口 处理器与存储器的速度匹配 存储器接口的定义 存储器访问命中率 两种接口 第1种方式:并行 命中率的计算 存储器访问时间 第2种方式:逐级 结语 大家好,欢迎回来。…

软件测试——性能测试工具JMeter

1.JMeter介绍 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。 环境要求: ​ 需要Java8或者更高的版本。 1.1 JMeter的下…

ARP表、MAC表、路由表的区别和各自作用

文章目录 ARP表、MAC表、路由表的区别和各自作用同一网络内:ARP表request - 请求reply - 响应 MAC地址在同一网络内,交换机如何工作? 不同网络路由表不同网络通信流程PC1到路由器路由器到PC2 简短总结 ARP表、MAC表、路由表的区别和各自作用 同一网络内: ARP作用: 让发送方知…

【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成

问题描述 在Azure Redis的导出页面,突然不能配置Storage Account的SAS作为授权方式。 image.png 那么是否可以通过AZ CLI或者是Powershell来实现SAS的配置呢? 问题解答 可以的。使用 az redis export 可以实现 az redis export --container --prefix[--a…

【AI系统】昇腾 AI 架构介绍

昇腾 AI 架构介绍 昇腾计算的基础软硬件是产业的核⼼,也是 AI 计算能⼒的来源。华为,作为昇腾计算产业⽣态的⼀员,是基础软硬件系统的核⼼贡献者。昇腾计算软硬件包括硬件系统、基础软件和应⽤使能等。 而本书介绍的 AI 系统整体架构&#…

transformers microsoft--table-transformer 表格识别

一、安装包 pip install transformers pip install torch pip install SentencePiecepip install timm pip install accelerate pip install pytesseract pillow pandas pip install tesseract 下载模型: https://huggingface.co/microsoft/table-transformer-s…