GO远程构建并调试

Golang dlv远程debug 如果不想remote程序阻塞等debug,而是直接执行,那么可以在启动远程程序的时候添加。如果不想remote程序阻塞等debug,而是直接执行,那么可以在启动远程程序的时候添加。执行后,会一直停在这个页面,等待goland连接后再往下走。zip文件,下载后( 如果没权限,记得 执行。如果不到500M,dlv会因为内存不足启动不起来。建议使用方式2,可以启动后debug,更方便。服务启动起来后,远程debug就会生效了。服务启动起来后,远程debug就会生效了。执行后会一直停留在这里,等待客户端连接。 阅读详情

GO远程调试

之前写C++,一直习惯了本地IDE+Remote CMake/GDB编译调试的模式。

因为6.824课程需要用GO,好像没有特别好的支持。记录一下如何配置调试的。


IDE: Goland

操作系统:Windows

远程服务器:Ubuntu

  1. 首先配置SSH,让其可以连接到服务器

image-20230901093829409

  1. 配置部署。选择SFTP。在映射中选择上传的路径。

image-20230901093937968

这样就实现了本地和服务器文件的同步

  1. 在服务器上安装delve

因为是ubuntu,我是直接sudo apt install delve就能进行安装。

但是后面发现直接这样安装的话版本有冲突

然后使用dlv version进行安装检查

使用源码进行安装:

cd ~

git clone git@github.com:go-delve/delve.git

cd delve

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

这个时候在你的go目录下,(比如我的是~/go/bin)会出现名字叫dlv的可执行文件。

然后将该路径添加到环境变量就行了。

image-20230901161358207

此时dlv version可以正确显示版本

 dlv version
Delve Debugger
Version: 1.21.0
Build: $Id: fec0d226b2c2cce1567d5f59169660cf61dc1efe $
  1. 编写测试文件
package main

import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println("Hello Go")
    showOS()
}

func showOS() {
    os := runtime.GOOS
    fmt.Println("当前操作系统是:", os)
}

image-20230901094548982

测试代码说明:创建目录test,并且创建go.mod文件。


  1. 配置Go Remote

image-20230901094742377

然后使用终端进入你的服务器代码路径,比如我的是~/projects/6.824/test/hello。

按照提示运行

dlv debug --headless --listen=:2345 --api-version=2 --accept-multiclient

  1. 进行运行配置

这里运行于选择之前部署的服务器。然后在远程目标上构建

image-20230901162914900

  1. 进行调试

可以看到,此时已经可以在服务器上构建并单步调试代码了image-20230901163123113

Golang远程调试Debug环境 最近在做 Operator 的二次开发,开发语言是Golang。Operator 开发时候需要用到k8s集群,遗憾的是k8s编排的容器网络与本地网络不通,无法直接进行debug。k8s 调整网络的方式比较麻烦,曲线救国在 k8s node 上安装Golang环境,本地进行远程debug。**注意:**Goland 中的代码要跟远程debug的代码一致,否则调试结果不准确,通过git进行代码同步是个不错的选择。从Templates 中创建一个 Go Remote 启动即可。 阅读详情

相关推荐

GoLand Debug实战:Delve断点、goroutine与远程调试

在 Go 工程实践中,调试器是把运行时状态变成可观察现场的基础设施。其原理通常由 IDE 发起调试会话,再由 Delve 等底层调试器启动或附加目标进程,通过断点、栈帧、变量和 goroutine 快照还原执行路径。相比打印日志,图形化调试的价值在于冻结关键分支,同时观察调用栈、并发任务、请求参数与数据库操作。它适用于 HTTP 服务、单元测试、容器内排查和远程调试等场景。GoLand Debug 将 Delve 封装为可视化配置与断点体系,覆盖条件断点、日志断点、异常捕获以及 optimized away

weixin_28831461的博客 44

GO语言远程DEBUG

在windows系统下开发Linux环境下的分布式系统组件时,往往因为组件之间的相互依赖调用需要进行服务端调试,delve是一款开源的go语言调试器,常用的go语言IDE,如goland vscode等都是依靠delve来进行调试操作的. 使用goland远程调试 使用goland来进行远程调试最好使用goland的 2019.1版本,原因是在goland 2019.1之前的版本中,因为调试路径映...

mayongze321的博客 5392

go_cmake:使用 cmake 构建一个 go 项目

go_cmake 假设您是一家商店。 继续断言您想将用于一两个项目。 Go 有一个经过深思熟虑的构建系统。 可以让它与 CMake 一起玩吗? 这是一个尝试。 指示 在顶级文件中,包含 : cmake_minimum_required(VERSION 3.0) include(bld/cmake/GolangSimple.cmake) add_subdirectory(some/subdirectory) 在some/subdirectory有你的 go 程序。 假设这是一个简单的 clint 来列出 redis 存储中的键。 这取决于go get提供的模块。 这是您在子目录的文件中需要的内容: GO_GET(go_redis github.com/hoisie/redis) ADD_GO_INSTALLABLE_PROGRAM(redis_lister # executable

Go语言远程调试

Go语言远程调试

YIYIYI 1332

迈创Cameralink采集卡与MIL软件集成开发实战指南

本文详细介绍了迈创Cameralink采集卡与MIL软件的集成开发实战指南,涵盖硬件安装、驱动配置、MIL软件深度设置及图像采集处理等关键步骤。特别适合工业视觉检测和医疗影像领域,通过优化配置和性能调优,实现高速稳定的图像处理。

weixin_29204205的博客 423

F5 Shape盾JSVMP核心检测点与无限并发Header生成实战(TikTok/航司)

本文深入剖析了F5 Shape盾结合JSVMP技术的核心风控机制,详细解读了其针对浏览器指纹、行为时序等多维度的检测逻辑。通过实战案例,分享了如何通过逆向分析、精准Hook关键检测点,并构建稳定、高并发的请求Header生成方案,以应对TikTok、航司等平台的高级反爬挑战。

weixin_29325007的博客 1014

Go Remote 远程调试docker容器内的go程序

总的来说,这条命令启动了一个 Delve 调试服务器,该服务器在所有网络接口的 2345 端口上监听连接,支持多个客户端同时连接,并使用 v2 版本的 API。总的来说,这条命令启动了一个 Delve 调试服务器,该服务器在所有网络接口的 2345 端口上监听连接,支持多个客户端同时连接,并使用 v2 版本的 API。在这个例子中,Delve 将在所有网络接口的 2345 端口上监听连接。:这个参数告诉 Delve 以无头模式运行,也就是说,Delve 将不会启动交互式的命令行界面,而是等待远程连接。

JavaMaster99的博客 2309

STM32与小米CyberGear微电机的CAN通信协议深度解析

本文深度解析STM32与小米CyberGear微电机的CAN通信协议,涵盖硬件连接、CAN总线配置、通信协议解析及多电机协同控制。重点介绍了基于STM32的电机控制实践,包括运动模式、速度与位置模式设置,以及数据反馈与故障诊断,为机器人及自动化设备开发提供实用指南。

www00的博客 362

goland IDE和delve调试位于kubernetes集群中的go程序

1 概述: 在本地电脑的ide中调试远程go程序,IDE为goland-2019.3,go程序暴露的http接口为GET /ip,go程序是以pod的形式运行在kubernetes集群中。当客户端请求到达目标go程序时,本地的IDE断点生效。 2 delve: 2.1简介 delve是一款go程序调式工具(git clone https://github.com/go-delve/delve.git),是一个简单易用的二进制程序,可用来启动目标go程序,进入dlv环境后可通过各种内置命令进行调试目标go程

nangonghen的博客 2483

RPN 解析

RPN全称是Region Proposal Network,Region Proposal的中文意思是“区域选取”,也就是“提取候选框”的意思,所以RPN就是用来提取候选框的网络; 1. RPN的意义 RPN第一次出现在世人眼中是在Faster RCNN这个结构中,专门用来提取候选框,在RCNN和Fast RCNN等物体检测架构中,用来提取候选框的方法通常是Selective Se

lanran2的博客 10万+

开发者体验度量:构建DevEx评估体系的方法论与工具

在深入讨论度量方法前,我们需要明确什么是开发者体验(DevEx)。许多人将其简化为"开发工具好不好用",这是一个危险的误解。开发者体验是指开发者在完成工作过程中的整体感受和效率,它由三大核心维度组成:工具与基础设施:开发、测试、部署工具链的效能流程与协作:工作流程的顺畅度和团队协作的效率文化与成长:支持实验、学习和专业发展的环境这三个维度相互作用,共同决定了开发者能否高效且愉悦地完成工作。开发者体验不是一个目的地,而是一段持续的旅程。

2401_88760782的博客 1429

GoLang ~ 远程调试

GoLang ~ 远程调试

南柯好萌的博客 1589

YOLO11全网首发:CVPR2026 Transformer注意力 | BinaryAttention 1-bit注意力,推理提速100%,超越FlashAttention2

本文改进:BinaryAttention 结合YOLO11的C3k2模块,全网首发创新。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 856

Docker Golang 开发环境搭建指南_docker golang开发环境(1)

容器运行后,我们可以在其中进行 Golang 项目的开发。可以使用任何喜欢的文本编辑器,修改容器内的代码,并使用 Golang 工具链来编译和运行代码。为了实现这一目的,我们可以在容器内启用一个远程调试服务器,并通过远程调试器连接它。选项将容器的 8080 端口映射到主机的 8080 端口,使得我们可以通过主机的浏览器访问容器中运行的应用。命令来创建并运行一个容器,以开发我们的 Golang 项目。,然后将源代码复制到容器中,并安装依赖,构建应用。以上命令将在容器中构建并运行我们的应用。

2401_84264107的博客 1183

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(一)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包

慕羽★的博客 3937

Python爬虫实战:使用Scrapy+Playwright高效爬取全球石油价格历史数据

python复制下载# 产品信息# 日期信息# 价格数据price = scrapy.Field() # 收盘价open = scrapy.Field() # 开盘价high = scrapy.Field() # 最高价low = scrapy.Field() # 最低价volume = scrapy.Field() # 交易量change_percent = scrapy.Field() # 涨跌幅# 元数据。

2201_76125261的博客 1020

GoLand远程开发实战:基于Docker容器的Go语言环境搭建与调试

本文详细介绍了如何使用GoLand IDE连接远程Docker容器进行Go语言开发。通过构建包含SSH和Go环境的专属Docker镜像,并配置GoLand的SFTP同步与远程SDK,开发者可在本地编写代码,实现在远程容器内编译、运行和调试,有效解决环境不一致和跨平台开发难题,提升团队协作效率。

cicd6pipeline的博客 117

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

golang设置远程调试

go build之后将编译号的dlv命令路径添加到PATH里。2. 目标机器下载源代码并且运行dlv。1. 目标机器构建安装dlv。3.本机添加go remote。

fusugongzi的博客 840

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Delve与编辑器集成:VS Code/GoLand配置Go调试环境的最佳实践

Delve是Go语言的专用调试器,为开发者提供强大的代码调试能力。本文将详细介绍如何在VS Code和GoLand这两款主流编辑器中配置Delve调试环境,帮助Go开发者快速搭建高效的调试工作流。 [![Delve调试器logo](https://raw.gitcode.com/gh_mirrors/del/delve/raw/237c5026f40e38d2dd6f62a7362de7b25b

gitblog_00238的博客 978

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

如何利用Delve与DAP协议构建高效Go语言调试体验:从基础到实战指南

Delve作为Go语言的专业调试器,通过实现调试适配器协议(DAP)为现代IDE提供了强大的调试支持。本文将深入解析Delve如何通过DAP协议与VS Code等编辑器无缝协作,帮助开发者快速掌握Go程序调试的核心技术。 [![Delve调试器标志](https://raw.gitcode.com/gh_mirrors/de/delve/raw/5565574ae8633b9fbf454909b

gitblog_00406的博客 1134

Windows下 VSCode 配置 Go 开发环境

配置 Go 开发环境,调试,远程附加调试,编写并使用自定义包,

qq_36252017的博客 1737

基于 .NET Aspire 的 Go 应用 VS Code 调试:GoDebugging Playground 完整实战指南

Aspire 的 VS Code 调试集成支持对 `Aspire.Hosting.Go` 托管的 Go 应用进行源码级调试。本指南以仓库中的 [GoDebugging Playground](https://link.gitcode.com/i/32e52d1aea440dd529a1a245709f1ee4) 为主线,带你完整体验从扩展开发宿主(Extension Development Hos

gitblog_00727的博客 165

GoLand远程开发实战:基于Docker容器的无缝调试环境搭建

本文详细介绍了如何利用GoLand与Docker容器搭建无缝的远程Go开发调试环境。通过构建包含完整Go工具链和SSH服务的自定义Docker镜像,并配置GoLand的远程连接与SFTP同步,开发者可以在本地IDE中流畅地编写代码,同时在远程容器内进行编译、运行和调试,有效解决了环境不一致、团队协作和资源利用等核心开发痛点。

w7x8y9z的博客 188

Goland配置docker远程开发环境

由于ssh登录先加载/etc/profile配置。运行种类选择文件的话,下面则是你编译运行的文件。方法一:临时方法,下次ssh登录会失效。运行后结果表明,是在docker容器内。成功开启SFTP后此处可见远程目录。选择目录或者软件包的话,则另有不同。linux中安装go的一般流程。docker内部要执行此命令。自己的电脑上也要执行此命令。在此可以和远程文件的互通。文件,看一下当前路径。

A1561163756的博客 688

从PHP转Go的开发者看过来:对比Xdebug,手把手教你用Goland调试Docker里的Go服务

本文为从PHP转向Go的开发者提供详细指南,重点介绍如何使用Goland在Docker环境中调试Go服务。通过对比Xdebug与Delve的异同,手把手教你配置断点、远程调试及处理容器化场景下的特殊挑战,帮助开发者快速掌握Go调试技巧,提升开发效率。

weixin_30457465的博客 414

Golang线上排错:彻底解决线上故障与性能瓶颈(Zap/PProf/Delve/Jaeger)

本文分享了一套Golang服务排错方法论,从日志管理到性能分析。针对新手常用的fmt.Println调试方式,指出其非结构化、低效等弊端,推荐使用Zap日志框架实现结构化日志和TraceID追踪。通过Gin框架集成示例,展示了如何为每个请求注入唯一标识,实现全链路日志关联。针对性能问题,介绍了pprof工具的使用场景,帮助开发者快速定位CPU、内存等瓶颈。这套组合方案能有效提升复杂微服务系统的排错效率,满足合规要求。

张国良的博客 1449
上一篇: ARIES,一种数据库恢复算法
下一篇: [LeetCode] 128. 最长连续序列
__CELESTIAL__
博客等级 码龄5年 2644粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值