Golang dlv远程debug

1. 前期准备

1.1. dlv安装

1.1.1. go install安装

go install github.com/go-delve/delve/cmd/dlv@latest

1.1.2. 手动安装

  1. 下载 linuxx86 架构 二进制文件

📎dlv.linux.x86.zip zip文件,下载后( 如果没权限,记得 执行chmod a+x ./dlv)

  1. 上传到服务上

img

1.2. 关闭编译器内联优化

-gcflags="-N -l"

1.3. 内存必须至少500M

如果不到500M,dlv会因为内存不足启动不起来

可以使用dmesg命令查看

img

另外cpu核数也可以调大一点,否则debug会很慢

2. 方式1:使用dlv启动的方式进行debug

2.1. 登录容器执行命令

./go-gray-test 换成你自己的服务

cd bin/ && /usr/local/go/bin/dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./go-gray-test

执行后,会一直停在这个页面,等待goland连接后再往下走

如果不想remote程序阻塞等debug,而是直接执行,那么可以在启动远程程序的时候添加 --continue参数

img

2.2. goland远程连接

img

img

2.3. 开始debug

服务启动起来后,远程debug就会生效了

3. 方式2:服务已启动,使用dlv attach方式远程debug

3.1. 登录到服务器,查看go线程id

ps -ef | grep go-gray-test

go-gray-test为启动服务的可执行文件名

3.2. 启动debug

dlv attach 373 --headless --listen=:2345 --api-version=2 --log=true

执行后会一直停留在这里,等待客户端连接

img

如果不想remote程序阻塞等debug,而是直接执行,那么可以在启动远程程序的时候添加 --continue参数

3.3. goland连接

img

连接之后,server端会打印连接上日志

img

3.4. 开始debug

服务启动起来后,远程debug就会生效了

4. 方案推荐

建议使用方式2,可以启动后debug,更方便

关注公众号:关大仙的学习笔记

后续高质量文章都会发布到这个公众号上, 还有面试共享群可以添加

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络性能测试工具:iperf3介绍

文章目录 前言一、iperf3 的安装和使用下载和安装参数说明 二、iperf3 测试服务端启动客户端启动服务端输出反向测试客户端服务端 前言 新接触的网络环境如何评估网络带宽和吞吐量呢,有的项目没有对业务流量进行合理规划,服务或者中间件出口带宽经常有被…

Unity屏幕分辨率适配方法

Unity屏幕分辨率适配方法 在Unity中实现屏幕分辨率适配,可以使用以下几种方法: 1. 使用Canvas Scaler 创建Canvas: 在Unity编辑器中创建一个Canvas,它将自动添加一个Canvas Scaler组件。 设置Canvas Scaler: 选择Ca…

golang语言的gofly快速开发框架如何设置多样的主题说明

本节教大家如何用gofly快速开发框架后台内置设置参数,配置出合适项目的布局及样式、主题色,让你您的项目在交互上加分,也是能帮你在交付项目时更容易得到客户认可,你的软件使用客户他们一般都是不都技术的,所以当他们拿…

prometheusgrafananode_export搭建监控平台

一、环境要求 1、docker安装docker环境 2、docker安装prometheus 3、docker安装grafana 4、node-exportor(安装在被测服务器上) 5、我的服务器是Ubuntu 二、docker 安装prometheus 1、下载Prometheus镜像 docker pull prom/prometheus 2、检查端口是否被占用 安装netstat命…

在Github找自己想要的的项目

点击进入github 1.首先进入到github的首页;搜索框搜(先关键字搜索)in:name 你的找的项目 比如: in:name Sping Boot2.进一步检索(点赞数高的) in:name Sping Boot star:>1000 3.如何要找最新的&…

初级硬件工程师,工作中遇到的问题list

1)元器件选型 刚进公司一般情况下是不会让新人选型的,最起码一年之后才会逐步接触,需要耐得了寂寞和坐冷板凳。但是有一种情况除外,人手紧张,并且电路板简单,会让新人选择简单的元器件,比如按键…

2024.5.31每日一题

LeetCode 找出缺失的重复数字 题目链接:2965. 找出缺失和重复的数字 - 力扣(LeetCode) 题目描述 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次&#xff…

Python开发 我的世界 Painting-the-World: Minecraft 像素图片生成器

简介 Painting-the-World 是一款创新的工具,专为《我的世界》(Minecraft) 玩家及创作者设计,旨在将数字图片转变为游戏内的像素艺术。通过利用 RCON (Remote Console) 协议,本项目可以直接与《我的世界》服务器对话,根据输入的图…

双点双向重发布

1、由于ASBR在重发布路由条目时,将清除原有协议携带的度量,添加新协议的种子度量;一日使用双点或多点重发布,可能出现选路不佳;-----路由策略来解决 2、当优先级不同的两种协议在进行多点双向重发布后,可能第一台ASBR将A协议发布到B协议后&a…

Android MediaCodec 简明教程(九):使用 MediaCodec 解码到纹理,使用 OpenGL ES 进行处理,并编码为 MP4 文件

系列文章目录 Android MediaCodec 简明教程(一):使用 MediaCodecList 查询 Codec 信息,并创建 MediaCodec 编解码器Android MediaCodec 简明教程(二):使用 MediaCodecInfo.CodecCapabilities 查…

万户ezEIP企业管理系统 /member/success.aspx 命令执行漏洞复现

0x01 产品简介 万户ezEIP是一种企业资源规划软件,旨在帮助企业管理其各个方面的业务流程。它提供了一套集成的解决方案,涵盖了财务、供应链管理、销售和市场营销、人力资源等各个领域。 0x02 漏洞概述 万户ezEIP企业管理系统 /member/success.aspx 接口处存在命令执行漏洞…

可变参数

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中,还可以定义可变参数。可变参数也称不定长参数,即传入函数中的实际参数可以是任意多个。 定义可变参数时&#xf…

IT运维保障企业网络畅通

目录 一、网络维护的基础知识 1.1 定期检查硬件设备 1.2 软件更新与补丁管理 二、网络优化技巧 2.1 带宽管理 2.2 流量分析与监控 2.3 网络拓扑优化 三、快速故障排除的技巧 3.1 制定故障排除流程 3.2 使用故障排除工具 3.3 定期培训与演练 在当今数字化时代&#x…

自然语言处理中的BERT模型深度剖析

自然语言处理(NLP)是人工智能领域的一个重要分支,它致力于让计算机理解和生成人类语言。近年来,BERT(Bidirectional Encoder Representations from Transformers)模型的出现,极大地推动了NLP领域…

【Linux】Linux环境基础开发工具_3

文章目录 四、Linux环境基础开发工具2. vim3. gcc和g动静态库的理解 未完待续 四、Linux环境基础开发工具 2. vim vim 怎么批量化注释呢?最简单的方法就是在注释开头和结尾输入 /* 或 */ 。当然也可以使用快捷键: Ctrl v 按 hjkl 光标移动进行区域选择…

【LeetCode】38.外观数列

外观数列 题目描述: 「外观数列」是一个数位字符串序列,由递归公式定义: countAndSay(1) "1"countAndSay(n) 是 countAndSay(n-1) 的行程长度编码。 行程长度编码(RLE)是一种字符串压缩方法&#xff0c…

Spring Cloud应用框架:Nacos作为服务注册中心和配置中心

Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。在Spring Cloud生态系统中,Nacos可以替代Eureka作为服务注册中心,同时也可以作为配置中心。所以我们这里使用Nacos作为Spring Cloud应用的服务注册中心和配置中心。 使用Nacos的好处 …

3.location的写法

location的写法 一、location的写法1、 精确匹配2、~ 以正则表达式匹配请求,区分大小写3、~* 以正则匹配请求,不区分大小写4、^~ 不以正则的方式匹配请求 二、stub_status模块显示工作状态三、url地址重写 rewrite模块1、语法2、针对项目结构有变化3、网…

LeetCode374猜数字大小

题目描述 我们正在玩猜数字游戏。猜数字游戏的规则如下:我会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,我选出的数字比你猜测的数字大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int n…

民国漫画杂志《时代漫画》第33期.PDF

时代漫画33.PDF: https://url03.ctfile.com/f/1779803-1248635648-d8235b?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!