Arm32进行远程调试

Arm 32bit Goland 远程调试

32位支持issue
Goland配置Go remote支持文档
https://mojotv.cn/go/golang-remote_debug

Delve

官方版本delve并不支持arm-32位,直接安装会提示架构不符合

架构判定文件为https://github.com/go-delve/delve/blob/master/pkg/proc/native/support_sentinel.go

个人水平有限,没有太明白这里的go build构建约束,欢迎大佬在评论区解读

注:第二行是老式的构建约束写法,大家看第一行就行了

// This file is used to detect build on unsupported GOOS/GOARCH combinations.
//go:build (!linux && !darwin && !windows && !freebsd) || (linux && !amd64 && !arm64 && !386) || (darwin && !amd64 && !arm64) || (windows && !amd64) || (freebsd && !amd64)
// +build !linux,!darwin,!windows,!freebsd linux,!amd64,!arm64,!386 darwin,!amd64,!arm64 windows,!amd64 freebsd,!amd64
package your_operating_system_and_architecture_combination_is_not_supported_by_delve

在issue下找到该仓库,实装后可以正常运行,
https://github.com/puppywang/delve

下载后进行安装make install

启动

  1. Goland远程启动程序A
## goland 终端打印
GOROOT= #gosetup
GOPATH=/root/go #gosetup
/root/Env/go/bin/go build -i -o /root/**/executables-7agJx2Zna4/___11_linux demo/cmd/demo #gosetup
go: -i flag is deprecated
/root/****/executables-nq690aaBJS/___11_linux
## 查下进程id,后面用
ps axu|grep ___11_linux
获得`exe_PID`
  1. 远程终端启动dlv
#PID 为程序A进程
dlv --listen=:5604 --headless=true --api-version=2 --check-go-version=false attach 获得`exe_PID`
//TODO 补充命令参数作用
  1. Goland配置Go remote

Host 远程部署IP
port 5604(上面)

然后即可进行远程调试

posted @   我才不是老家伙  阅读(632)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示