如何记录两个断点之间的调用栈?
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。您可以通过单击“更多”展开对话。
- 设置日志文件在
Run
>
Edit Configurations
>
Logs
我正在尝试使用 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。您可以通过单击“更多”展开对话。
- 设置日志文件在
Run
>
Edit Configurations
>
Logs