python - 如何记录两个断点之间的调用堆栈?
问题描述
我正在尝试使用 PyCharm 来调试一个大型项目。我的问题是现在我有以下代码:
objList = [obj1,obj2]
for obj in objList:
fun(obj)
预期的结果是两者都fun(obj1)
不会fun(obj2)
导致错误,但事实是fun(obj2)
引发异常而fun(obj1)
不是。所以我想找到一种方法来记录两个函数调用的调用堆栈并比较它们以进行调试。注意,fun(obj1)
raise no error 所以异常断点不会被命中,并且项目很大,所以逐层进入函数是不可行的。
解决方案
这需要 2 个步骤,一个用于设置断点,另一个用于配置日志文件。
1.1。右键单击断点并设置回溯函数,在本例traceback.print_stack()
中。(您必须import traceback
在模块顶部。)
1.2. 您可以通过单击“更多”来展开对话。
- 将日志文件设置在
Run
>
Edit Configurations
>
Logs
推荐阅读
- powershell - 如何在 Powershell 中过滤(json)数组?
- javascript - 如何根据三个分隔符拆分字符串?
- javascript - 如何在 php 中使用 javascript 函数?
- visual-studio-code - 如何摆脱 vscode 远程开发?
- javascript - 单击编辑器上的工具栏按钮时,不将焦点放在 Froala 编辑器上的编程方法是什么。 $el (textarea)
- android - 在活动中初始化 viewpager2
- c# - 将 Access 数据加载到 DataGridView
- r - r for 循环与 if else 语句和对先前迭代结果的引用
- java - 如何保存 AggregateIterable
值到 mongodB 中的地图? - php - 从表单输入上传照片和文本并使用 php 发送到电报机器人