Source: Trace
← Renderedmarkdown source:
---
description: Трассировка выполнения программ в python
tags: python-standart-library python
title: Trace
---
Используется для трассировки выполнения программ. Можно вызывать непосредственно из командной строки с [различными опциями](https://docs.python.org/3/library/trace.html#main-options)
Пример: `python -m trace -t example.py` выведет построчно отображение кода по мере выполнения (в ряде случаев полезно отфильтровать тарсировку импортов - это можно задать через cli). Трасировщик выведет операции настройки, а затем вход в каждую функцию, включая модули, в котором находятся функции, и строки исходного файла по мере их выполнения.
Применение параметра `--count` создает отчет с расширением .cover о покрытии кода, в котором будет информация о том, какие строки выполнены, а какие пропущены. Файл отчета создается отдельно для каждого файла python скрипта. Кроме того, можно создавать объединенные файлы покрытия, прогоняя несколько разных параметров запуска. Так-же реализован отчет о взаимных вызовах функций.
У модуля есть [программный интерфейс](https://docs.python.org/3/library/trace.html#programmatic-interface), который в общем случае сводится к созданию инстанса `Trace`, который определяет контекст трассировки и другие опции.
```python
import trace
from trace_example import example
tracer = trace.Trace(count=False, trace=True)
tracer.run('example(42)')
```
или так:
```python
import trace
from trace_example import example
tracer = trace.Trace(count=False, trace=True)
tracer.runагтс(example, 42)
```
Программный интерфейс так-же позволяет писать отчет в файл .cover
```python
import sys
import trace
# create a Trace object, telling it what to ignore, and whether to
# do tracing or line-counting or both.
tracer = trace.Trace(
ignoredirs=[sys.prefix, sys.exec_prefix],
trace=0,
count=1)
# run the new command using the given tracer
tracer.run('main()')
# make a report, placing output in the current directory
r = tracer.results()
r.write_results(show_missing=True, coverdir=".")
```
Смотри еще:
- [документация](https://docs.python.org/3/library/trace.html)
- [[python-standart-library]]
- [[devtools]]
- [[pdb-python-debugger]]
[python-standart-library]: ../lists/python-standart-library "Стандартная библиотека python и полезные ресурсы"
[devtools]: devtools "Python devtools"
[pdb-python-debugger]: pdb-python-debugger "Pdb python debugger"