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

GoLand Debug 时 如何回到之前执行的地方

  •  
  •   monetto · 2021-10-12 15:03:24 +08:00 · 2212 次点击
    这是一个创建于 1143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,之前用 IDEA 的时候,可以用 Drop Frame,直接回到上一个调用栈。

    GoLand 貌似没发现这样的功能,感觉 Debug 的时候,貌似没有 Java 调试起来方便啊。

    有大佬解决过类似的问题吗

    11 条回复    2021-10-12 21:31:46 +08:00
    Giny
        1
    Giny  
       2021-10-12 15:55:07 +08:00
    没太懂,GoLand 跟 idea 一个模子刻出来的,debug 哪里有 帧 和变量两个页签啊
    40EaE5uJO3Xt1VVa
        2
    40EaE5uJO3Xt1VVa  
       2021-10-12 16:11:25 +08:00
    不知道是不是孕妇效应,最近看讨论 golang 的越来越多了
    Saxton
        3
    Saxton  
       2021-10-12 16:33:44 +08:00
    @yanzhiling2001 什么是孕妇效应
    janxin
        4
    janxin  
       2021-10-12 16:59:19 +08:00   ❤️ 1
    https://www.jetbrains.com/help/go/debugging-with-mozilla-rr.html

    另外这个功能在是跟实现和系统相关的,在虚拟机语言里只需要做 trace 记录就可以了,比如 Python 就可以实现类似的功能,但是 JNI 这种就用不了你提到的这种功能
    sadfQED2
        5
    sadfQED2  
       2021-10-12 17:27:32 +08:00 via Android
    @yanzhiling2001 同问什么是孕妇效应
    lisongeee
        6
    lisongeee  
       2021-10-12 17:41:52 +08:00
    @sadfQED2 @Saxton
    aHR0cHM6Ly9iYWlrZS5iYWlkdS5jb20vaXRlbS8lRTUlQUQlOTUlRTUlQTYlODclRTYlOTUlODglRTUlQkElOTQ=
    dcalsky
        7
    dcalsky  
       2021-10-12 17:53:24 +08:00
    @yanzhiling2001 Go 确实越来越火,如果看见讨论的是 Ruby 那就是孕妇效应。
    zoharSoul
        8
    zoharSoul  
       2021-10-12 18:08:31 +08:00   ❤️ 1
    @sadfQED2 #5
    @Saxton #3

    如果自己怀孕了就会发现 /感觉周围都是孕妇, 这就是所谓的孕妇效验
    monetto
        9
    monetto  
    OP
       2021-10-12 18:09:48 +08:00
    @Giny IDEA 在 Debug 的时候,进入一个函数之后,可以对栈列表中的调用栈,选择 Drop Frame,然后回到函数一开始调用的地方。GoLand 貌似没有提供。
    sadfQED2
        10
    sadfQED2  
       2021-10-12 18:25:55 +08:00 via Android
    @monetto 这应该不是 goland 的问题,java 是运行在 jvm 里面的,go 是编译成二进制代码的,我觉得应该是 go 语言 debug 就不能实现回跳这种功能
    neoblackcap
        11
    neoblackcap  
       2021-10-12 21:31:46 +08:00
    @sadfQED2 这功能理论上不依赖 go 实现。C/C++是有的,叫 rr 。不过实现调试的时间穿越功能对性能已经并发的影响很大,如果语言本身没有开洞,怕是不好搞。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3306 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.