当打印错误堆栈跟踪时,如何打印传递给调用堆栈中的函数的参数值?我希望输出与下面的示例完全相同。
例子:
Traceback (most recent call last):
File "./file.py", line 615, in func0 **(arg0) arg0 = 0 was passed**
result = func1(arg1, arg2)
File "./file.py", line 728, in func1 **(arg1, arg2) arg1 = 1 and arg2 = 2 was passed**
return int_value[25]
TypeError: 'int' object is not iterable
Run Code Online (Sandbox Code Playgroud)
除了堆栈跟踪中的正常输出之外,我还希望打印上面 ** ** 内的信息。我的设想是调试器也会自动打印传递的参数。这将清楚地显示数据传递的“功能管道”、管道中发生了什么以及哪个函数没有执行其应该执行的操作。这将有助于调试很多。
我搜索了很多,发现了这些相关问题:
但他们的答案都不适合我:第一个答案导致了ModuleNotFoundError: No module named 'stackdump'。第二个问题的答案使我的ipython解释器因非常长的堆栈跟踪而崩溃。
我也抬头一看:
s似乎有一个capture_locals变量TracebackException,但我不太明白如何使其工作。