Golang dlv远程debug

news2025/1/18 17:16:36

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.coloradmin.cn/o/1719913.html

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

相关文章

linux下使用cmake-gui编译WXQT

一.编译环境 操作系统:Ubuntu 22.04.3 LTS wxWidgets源码:wxWidgets-3.1.5 编译工具:CMake-gui qt版本:5.13.2 二.编译步骤 1.将源码解压。 2.打开CMake-gui,并设置好源码目录和构建目录 3.点击configure 会弹出…

【c++入门】this指针

this指针引出: 我们知道一个类可以有多个实例化对象,但是这多个实例化对象所调用的成员函数是在公共代码区; 我们先来定义一个Date类: class Date { public:void init(int year, int month, int day){_year year;_month month;…

excel怎么对非数字求和汇总?

如:学生小王的成绩为:A,A,A,A,B,B-……想得到的成绩汇总求和为:2A,2A,1B,1B- 如果在低版本里,用公式计算可能相当复杂,但是有了TEXTJOIN函数和UNIQUE函数&…

一、实现一个简单的 Google Chrome 扩展程序

目录 🧭 效果展示 # 图示效果 a. 拓展程序列表图示效果: b. 当前选项卡页面右键效果: c. 拓展程序消息提示效果: 📇 项目目录结构 # 说明 # 结构 # 文件一览 ✍ 核心代码 # manifest.json # background.j…

数据结构算法 数组的实现与练习(C语言实现,Java实现)

文章目录 数据结构数组(顺序表)特点使用Java实现更高级的数组C语言实现总结优点缺点 例题[26. 删除有序数组中的重复项](https://leetcode.cn/problems/remove-duplicates-from-sorted-array/)[1. 两数之和](https://leetcode.cn/problems/two-sum/)[27. 移除元素](https://lee…

阿里云部署nodejs

目录 1、安装node.js 1-1 进入opt/software 1-2 下载node.js安装包 1-3 解压 2 配置环境变量 2-1 vim中配置环境变量 2-2 命令行中保存环境变量 2-3 检查安装版本 2-3 更换镜像 3、上传node.js项目 1-1 启动项目 1-2 配置对应的安全组 ​编辑 4、pm2启动多个node项…

Scroll 上的明星项目Pencils Protocol ,缘何被严重低估?

近日,完成品牌升级的 Pencils Prtocol 结束了 Season 2 并无缝开启了 Season 3,在 Season 3 中,用户可以通过质押系列资产包括 $ETH、$USDT、$USDC、$STONE 、$wrsETH、$pufETH 等来获得可观收益,并获得包括 Scroll Marks、 Penci…

二叉树的前序遍历(oj题)

一、题目链接: https://leetcode-cn.com/problems/binary-tree-preorder-traversal/ 二、题目思路 先调用二叉树节点计算函数,得到二叉树的总结点数。然后申请该大小的数组空间。 再使用前序遍历,依次访问每个结点的数据,依次存…

01-1.2.3 算法的空间复杂度

什么是空间复杂度? 代码在运行之前需要先装入内存,程序代码需要占一定的位置(在这边假设是100B) 定义的变量和参数i,n都需要占用内存空间 //算法一——逐步递增型 void loveYou(int n) { //n为问题规模int i 1; /…

Notepad++ 常用

File Edit search view Encoding Language Settings Tools Macro Run Plugins Window 文件 编辑 搜索 视图 编码 语言 设置 工具 宏 运行 插件 窗口 快捷方式 定位行 :CTRL g查找: CTRL F替换&am…

未来已来, AI将作为超级工具?

人工智能时代已来 1.AI将作为超级工具:AI是推动全产业数字化转型的高效工具,机遇比互联网时代大10倍,但只有1/3的机会留给初创企业。 2.硅谷AI市场分类中,特别看好开源平台,其将为初创企业和大企业提供更多选择。 3.…

LabVIEW调用外部DLL(动态链接库)

LabVIEW调用外部DLL(动态链接库) LabVIEW调用外部DLL(动态链接库)可以扩展其功能,使用外部库实现复杂计算、硬件控制等任务。通过调用节点(Call Library Function Node)配置DLL路径、函数名称和…

chatMed开发日志博客(持续更新中)

目录 1. 项目概述 2. 开发人员团队 3. 大致需求 4. 开发内容 4.1. 前端开发 4.1.1: 前端页面开发 4.1.2: 登录机制以及路由守卫的开发 4.1.3: 文件上传机制和保存机制 4.1.4: 消息传递机制 4.2. 线程池开发 4.3. 在线调试 1. 项目概述 搭建一个基于深度学习的分析平台…

Scrapy vs. Beautiful Soup | 网络抓取教程 2024

网络爬虫是任何想要从网上收集数据用于分析、研究或商业智能的人必备的技能。Python中两个最受欢迎的网络爬虫工具是Scrapy和Beautiful Soup。在本教程中,我们将比较这些工具,探索它们的功能,并指导你如何有效地使用它们。此外,我…

国产FPGA核心板!米尔紫光同创Logos-2和Xilinx Artix-7核心板

随着嵌入式的快速发展,在工控、通信、5G通信领域,FPGA以其超灵活的可编程能力,被越来越多的工程师选择。近日,米尔电子发布2款FPGA的核心板和开发板,型号分别为:基于紫光同创Logos-2系列PG2L100H的MYC-J2L1…

Linux基础指令及其作用之系统信息和管理

系统信息和管理 ps ps 命令用于显示当前系统的进程信息。它是 Unix 和类 Unix 操作系统中的一个重要工具,可以用于监控和管理系统进程。以下是 ps 命令的详细用法和常见选项: ps [选项]常用选项![在这里插入图片描述](https://img-blog.csdnimg.cn/di…

从摇一摇到弹窗,AD无处不在?为了不再受打扰,推荐几款好用的屏蔽软件,让手机电脑更清爽

当我们沉浸在智能手机带来的便捷与乐趣中时,内置AD如同不速之客,时常打断我们的体验。 尤其是手机上那些“摇一摇”跳转,稍有不慎就会跳转到其他应用,令人不胜其烦。同样,电脑上的内置AD也如影随形,影响了我…

深度学习模型的C++部署:ONNXRUNTIME引领跨平台革命

一、引言 在AI技术的浪潮中,深度学习模型的部署已成为工程师们的核心技能。随着AI技术的不断进步,对于能够高效部署模型的人才需求日益增长。C因其在性能和系统级控制方面的优势,正逐渐成为深度学习模型部署的行业新宠。 二、C:…

【介绍下运维,什么是运维?】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

【Qt】【模型-视图架构】代理模型示例

文章目录 1. 基本排序/过滤模型Basic Sort/Filter Model Example2. 自定义排序/过滤模型Custom Sort/Filter Model ExampleFilterLineEdit类定义及实现MySortFilterProxyModel类定义及实现 1. 基本排序/过滤模型Basic Sort/Filter Model Example 官方提供的基本排序/过滤模型示…