去相当于pythons pdb.set_trace()?

时间:2021-04-28 02:19:17

标签: go gdb pdb

在 python 中,您可以在代码中使用 pdb.set_trace() 在代码到达该点时立即启动 pdb 调试器,而无需处理调试器或断点。是否有与 gdb 或任何其他调试器等效的 go?我看到了 https://golang.org/doc/gdb#Naming,但我不知道如何以同样的方式应用它。

1 个答案:

答案 0 :(得分:1)

不,没有这样的等价物。 Python 本质上是解释性的1,而 pdb 只是任何正在运行的 Python 实例的一部分,因此这要容易得多。

不过,一旦您在 gdb 或 dlv 下运行,在某些已知函数中设置断点并不难。从您想要放入调试器的点调用该函数将使您进入调试器。因此,而不是 pdb.set_trace 只需调用 debugging.Stop() 并编写一个 debugging 包,其中包含一个刚刚返回的 Stop 函数。在那里设置断点并运行您的程序。


1Python 理论上可以被编译或 JIT-ted,但是由于语言的极端动态特性,例如方法调用,这往往不如其他语言好.对语言添加一些小的限制,但没有一个会降低它的可用性,这将使编译为快速代码变得更加容易。有关更多详细信息,请参阅 Does the Python 3 interpreter have a JIT feature?(解除全局解释器锁定也会有很大的回报,但也很困难:请参阅 PyPy FAQ。)

相关问题