В целях создания специализированного отладчика для моего кода я хотел бы отследить некоторые функции в моем коде и записать аргументы, полученные в каждом вызове.
Я бы хотел сделать это без добавления строки кода для каждой функции или даже декоратора вокруг всех функций, но для того, чтобы установить трассировку на протяжении всего прогона.
Это похоже на то, что вы можете сделать с sys.settrace в модуле sys:
https://docs.python.org/2/library/sys.html
за исключением того, что, насколько я могу судить, трассировка не включает аргументы функций.
Итак, я хотел бы написать функцию, которая выглядит примерно так:
def tracing_func(func_name, args):
if func_name in ['func', 'foo']:
log_func_args(func_name, args)
где log_func_args записывает его в файл для последующего анализа.
Затем задайте, чтобы эта функция вызывалась всякий раз, когда вызывается любая функция в моем коде, с именем и аргументами функций.
Можно ли это сделать?