Как мы можем напечатать значения аргументов, переданных функциям в стеке вызовов при выводе трассировки стека ошибок? Я хотел бы, чтобы выходные данные были точно такими же, как в примере ниже.
Пример:
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
Я бы хотел, чтобы информация внутри ** ** s также была напечатана в дополнение к нормальному выводу в трассировку стека. Я предполагаю, что отладчик также автоматически печатает переданные аргументы. Это дало бы четкое представление о «функциональном конвейере», через который проходили данные, и о том, что с ним происходило в конвейере, и какая функция не выполняла того, что должна была делать. Это поможет отладке.
Я довольно долго искал и нашел следующие вопросы:
, но ответы ни на один из них не сработали: ответ на 1-й привел к ModuleNotFoundError: No module named 'stackdump'
. Ответ на второй сбил мой ipython
интерпретатор с очень длинной трассировкой стека.
Я также посмотрел вверх:
Кажется, есть переменная capture_locals
для TracebackException
с, но я не совсем понял, как это сделать работа.