Go语言中类似于Python pdb.set_trace() 的功能是什么?

3
在Python中,您可以在代码中使用pdb.set_trace()来在代码到达该点时启动pdb调试器,而无需处理调试器或断点。是否有类似于gdb或任何其他调试器的go等价物?我看到了https://golang.org/doc/gdb#Naming,但我不知道如何以同样的方式应用它。
1个回答

0

不,没有这样的等效物。Python本质上是解释执行的1,而pdb只是Python运行实例的一部分,因此在Python中更容易实现。

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


1Python理论上可以编译或JIT,但由于语言的极度动态性(例如方法调用),这往往不如其他语言有效。为语言添加一些小限制(其中没有任何使其不可用的限制)将使编译成快速代码变得更加容易。有关详细信息,请参见Python 3解释器是否具有JIT功能?(消除全局解释器锁定也会有很大回报,但这也很困难:请参见PyPy FAQ。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接