如何记录两个断点之间的调用栈?

How to record the call stack between two breakpoint?

我正在尝试使用 PyCharm 来调试大型项目。我的问题是现在我有以下代码:

objList = [obj1,obj2]
for obj in objList:
    fun(obj)

预期的结果是fun(obj1)fun(obj2)都不会导致错误,但事实是fun(obj2)引发异常而fun(obj1)不会。所以想办法记录下两个函数调用的调用栈,对比调试。注意 fun(obj1) 没有报错,所以异常处的断点不会被命中,而且项目很大,所以逐层进入函数是不可行的。

这需要 2 个步骤,一个用于设置断点,另一个用于配置日志文件。

1.1。右键单击断点并设置一个回溯函数,在本例中为 traceback.print_stack()。 (您必须 import traceback 在模块的顶部。)

1.2。您可以通过单击“更多”展开对话。

  1. 设置日志文件在Run>Edit Configurations>Logs