首页 > 解决方案 > 如何记录两个断点之间的调用堆栈?

问题描述

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

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

预期的结果是两者都fun(obj1)不会fun(obj2)导致错误,但事实是fun(obj2)引发异常而fun(obj1)不是。所以我想找到一种方法来记录两个函数调用的调用堆栈并比较它们以进行调试。注意,fun(obj1)raise no error 所以异常断点不会被命中,并且项目很大,所以逐层进入函数是不可行的。

标签: pythondebuggingloggingpycharmbreakpoints

解决方案


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

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

截图 右键单击​​断点

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

屏幕截图展开 右键单击​​断点

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

在此处输入图像描述


推荐阅读