小编War*_*her的帖子

将参数值打印到堆栈跟踪中的函数

当打印错误堆栈跟踪时,如何打印传递给调用堆栈中的函数的参数值?我希望输出与下面的示例完全相同。

例子:

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,但我不太明白如何使其工作。

python debugging stack-trace

5
推荐指数
1
解决办法
1630
查看次数

标签 统计

debugging ×1

python ×1

stack-trace ×1