V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
cydleadingx
V2EX  ›  Go 编程语言

mac M1 支持 golang debug 了

  •  
  •   cydleadingx · 2021-01-14 18:45:40 +08:00 · 4822 次点击
    这是一个创建于 1170 天前的主题,其中的信息可能已经有所发展或是发生改变。
    8 条回复    2021-01-19 20:37:06 +08:00
    linuap
        1
    linuap  
       2021-01-14 20:44:46 +08:00
    稍微玩了一下,给后面的同学参考

    1. go-delve 的 master 分支已 merge 了对 arm mac 支持,直接用官方源即可
    2. 转译的 term 不支持使用这个 dlv,会报错.这导致现有的 vscode stable 无法使用这个 dlv 进行 debug, goland 应该是原生 arm 版所以没这个问题
    pdckxd
        2
    pdckxd  
       2021-01-14 22:24:46 +08:00
    golang 用链接里的方法编译 delve master 分支 再替换 golang plugin 里的 dlv 命令,debug 会直接报错 kill 136
    pdckxd
        3
    pdckxd  
       2021-01-14 22:25:08 +08:00
    有人试成功不?
    jasonix
        4
    jasonix  
       2021-01-14 22:51:59 +08:00
    很早就在 M1 上能 debug 了。
    我之前差不多是这样操作的:
    1.拉 https://github.com/oxisto/delve,darwin-arm64-lldb 分支编译出 dlv
    2.替换 /Users/jason/Library/Application Support/JetBrains/Toolbox/apps/Goland-ARM/ch-0/203.6682.164/GoLand.app/Contents/plugins/go/lib/dlv/mac 目录下的 dlv
    懒得编译的我提供一个我现在用的
    链接: https://pan.baidu.com/s/130xBWxyW-2p5wEnEbUxhmA 提取码: crwf
    pdckxd
        5
    pdckxd  
       2021-01-14 23:42:10 +08:00
    @jasonix 也是不行,奇怪了,我的系统是 11.1

    GOROOT=/Users/user1/go #gosetup
    GOPATH=/Users/user1/.go #gosetup
    /Users/user1/go/bin/go build -o /private/var/folders/ss/8gmdbns14bgd7fvcz3v18r500000gn/T/___2go_build_main_go -gcflags all=-N -l /Users/user1/Downloads/StudyGo/main.go #gosetup
    "/Users/user1/Library/Application Support/JetBrains/Toolbox/apps/Goland-ARM/ch-0/203.6682.164/GoLand.app/Contents/plugins/go/lib/dlv/mac/dlv" --listen=0.0.0.0:58927 --headless=true --api-version=2 --check-go-version=false --only-same-user=false exec /private/var/folders/ss/8gmdbns14bgd7fvcz3v18r500000gn/T/___2go_build_main_go --

    Debugger finished with exit code 137 (interrupted by signal 9: SIGKILL)

    代码:
    package main

    import "fmt"

    func main() {
    fmt.Println("Hello")
    }
    kedadiannao220
        6
    kedadiannao220  
       2021-01-18 18:11:31 +08:00
    @pdckxd 可能是 ide 的问题
    http://localhost:1313/post/go/%E5%85%B3%E4%BA%8Egoland%E6%97%A0%E6%B3%95debug%E7%9A%84%E9%97%AE%E9%A2%98/
    pdckxd
        8
    pdckxd  
       2021-01-19 20:37:06 +08:00
    @kedadiannao220 多谢,确认 IDE 是 Apple Silicon 的版本,今天又试了下,莫名奇妙的可以 debug 了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2870 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.