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

2021-10-12 15:03:24 +08:00
 monetto

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

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

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

2102 次点击
所在节点    Go 编程语言
11 条回复
Giny
2021-10-12 15:55:07 +08:00
没太懂,GoLand 跟 idea 一个模子刻出来的,debug 哪里有 帧 和变量两个页签啊
yanzhiling2001
2021-10-12 16:11:25 +08:00
不知道是不是孕妇效应,最近看讨论 golang 的越来越多了
Saxton
2021-10-12 16:33:44 +08:00
@yanzhiling2001 什么是孕妇效应
janxin
2021-10-12 16:59:19 +08:00
https://www.jetbrains.com/help/go/debugging-with-mozilla-rr.html

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

如果自己怀孕了就会发现 /感觉周围都是孕妇, 这就是所谓的孕妇效验
monetto
2021-10-12 18:09:48 +08:00
@Giny IDEA 在 Debug 的时候,进入一个函数之后,可以对栈列表中的调用栈,选择 Drop Frame,然后回到函数一开始调用的地方。GoLand 貌似没有提供。
sadfQED2
2021-10-12 18:25:55 +08:00
@monetto 这应该不是 goland 的问题,java 是运行在 jvm 里面的,go 是编译成二进制代码的,我觉得应该是 go 语言 debug 就不能实现回跳这种功能
neoblackcap
2021-10-12 21:31:46 +08:00
@sadfQED2 这功能理论上不依赖 go 实现。C/C++是有的,叫 rr 。不过实现调试的时间穿越功能对性能已经并发的影响很大,如果语言本身没有开洞,怕是不好搞。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/807310

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX