1

Arm32进行远程调试 - 风佴

 2 years ago
source link: https://www.cnblogs.com/guapilsh/p/16526100.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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(上面)

然后即可进行远程调试


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK