Документация Python неофициальный перевод

trace.md

193 строк · 7.2 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.0/library/trace.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `trace` – трассировка или отслеживание выполнения операторов Python89The `trace` module allows you to trace program execution, generate annotated statement coverage listings, print caller/callee relationships and list functions executed during a program run. It can be used in another program or from the command line.1011## Использование командной строки1213The `trace` module can be invoked from the command line. It can be as simple as1415```python16python -m trace --count somefile.py ...17```1819Приведённая выше команда создаст аннотированные листинги всех модулей Python, импортированных в ходе выполнения `somefile.py`.2021Поддерживаются следующие аргументы командной строки:2223***--trace*, *-t***2425Отображает строки по мере их выполнения.2627***--count*, [*-c*](https://python-all.ru/3.0/using/cmdline.html#cmdoption-c)**2829Создаёт набор аннотированных файлов листингов по завершении программы, показывающих, сколько раз выполнялся каждый оператор.3031***--report*, *-r***3233Создаёт аннотированный список на основе предыдущего запуска программы, в котором использовались аргументы3435*--count*3637и3839*--file*4041.4243***--no-report*, *-R***4445Не создавать аннотированные листинги. Это полезно, если планируется выполнить несколько запусков с4647*--count*4849, а затем сформировать единый набор аннотированных листингов в конце.5051***--listfuncs*, *-l***5253Выводит список функций, выполненных в ходе работы программы.5455***--trackcalls*, *-T***5657Формирует информацию о вызовах, обнаруженных при выполнении программы.5859***--file*, *-f***6061Указывает файл, содержащий (или предназначенный для хранения) счётчиков.6263***--coverdir*, *-C***6465Указывает каталог для сохранения аннотированных файлов листингов.6667***--missing*, [*-m*](https://python-all.ru/3.0/using/cmdline.html#cmdoption-m)**6869При создании аннотированных листингов помечать строки, которые не выполнялись, символом ‘7071`>>>>>>`7273‘.7475***--summary*, [*-s*](https://python-all.ru/3.0/using/cmdline.html#cmdoption-s)**7677При использовании7879*--count*8081или8283*--report*8485выводить краткую сводку в stdout для каждого обработанного файла.8687***--ignore-module***8889Принимает разделённый запятыми список имён модулей. Игнорирует каждый указанный модуль и его подмодули (если это пакет). Можно указывать несколько раз.9091***--ignore-dir***9293Игнорирует все модули и пакеты в указанном каталоге и подкаталогах (несколько каталогов можно объединить через os.pathsep). Можно указывать несколько раз.9495## Программный интерфейс9697#### `[trace.Trace]class trace.Trace([count=1[, trace=1[, countfuncs=0[, countcallers=0[, ignoremods=()[, ignoredirs=()[, infile=None[, outfile=None[, timing=False]]]]]]]]])`9899Создаёт объект для трассировки выполнения одного оператора или выражения. Все параметры необязательны.100101*count*102103включает подсчёт номеров строк.104105*trace*106107включает трассировку выполнения строк.108109*countfuncs*110111включает вывод списка функций, вызванных во время выполнения.112113*countcallers*114115включает отслеживание отношений вызовов.116117*ignoremods*118119– список модулей или пакетов, которые следует игнорировать.120121*ignoredirs*122123– список каталогов, модули или пакеты которых следует игнорировать.124125*infile*126127– файл, из которого читать сохранённую информацию о счётчиках.128129*outfile*130131– файл, в который записывать обновлённую информацию о счётчиках.132133*timing*134135включает отображение временной метки относительно момента начала трассировки.136137#### `[trace.Trace.run]Trace.run(cmd)`138139Запускает140141*cmd*142143под управлением объекта Trace с текущими параметрами трассировки.144145#### `[trace.Trace.runctx]Trace.runctx(cmd[, globals=None[, locals=None]])`146147Запускает148149*cmd*150151под управлением объекта Trace с текущими параметрами трассировки в заданных глобальном и локальном окружениях. Если они не заданы,152153*globals*154155и156157*locals*158159по умолчанию равны пустым словарям.160161#### `[trace.Trace.runfunc]Trace.runfunc(func, *args, **kwds)`162163Вызывает164165*func*166167с заданными аргументами под управлением объекта168169[`Trace`](https://python-all.ru/3.0/library/trace.html#trace.Trace)170171с текущими параметрами трассировки.172173Это простой пример, демонстрирующий использование данного модуля:174175```python176import sys177import trace178179# создать объект Trace, указав, что игнорировать и нужно ли180# выполнять трассировку или подсчёт строк, или и то и другое181tracer = trace.Trace(182    ignoredirs=[sys.prefix, sys.exec_prefix],183    trace=0,184    count=1)185186# запустить новую команду с помощью указанного трассировщика187tracer.run('main()')188189# создать отчёт, поместив вывод в /tmp190r = tracer.results()191r.write_results(show_missing=True, coverdir="/tmp")192```193