Как автоматически отслеживать все вызовы функций и аргументы?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как автоматически отслеживать все вызовы функций и аргументы?

Сообщение Anonymous »


Для создания специализированного отладчика для моего кода я хотел бы отслеживать некоторые функции в моем коде и регистрировать аргументы, которые они получают при каждом вызове.

Мне хотелось бы иметь возможность сделать это, не добавляя строку кода к каждой функции или даже декоратор вокруг всех функций, а устанавливая трассировку для всего выполнения.

Это чем-то похоже на то, что вы можете сделать с помощью sys.settrace в модуле sys: https://docs.python.org/2/library/sys.html

за исключением того, что, насколько я могу судить, трассировка не включает аргументы функций.

Поэтому я хотел бы написать функцию, которая выглядит примерно так:

def tracing_func(func_name, args): если имя_функции в ['func', 'foo']: log_func_args (имя_функции, аргументы) где log_func_args записывает данные в файл для последующего анализа.

Затем установите эту функцию так, чтобы она вызывалась при каждом вызове любой функции в моем коде, с указанием имени и аргументов функции.

Можно ли это сделать?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»