Python Glossary English

Python 3.4+tracemallocпонятие

tracemalloc.Traceback

трассы и кадры

Последовательность объектов Frame — стек вызовов в момент выделения памяти; метод format() даёт строки как в трассировке ошибки.

Синтаксис

tb.format(limit=None, most_recent_first=False) -> list[str]

С Python 3.7 кадры идут от самого старого к самому свежему, а не наоборот: tb[0] — точка входа, tb[-1] — строка, где память выделена. format(most_recent_first=True) переворачивает порядок для печати. Кадров не больше nframe из start(), по умолчанию один — тогда tb[0] и tb[-1] совпадают.

Примеры

import tracemalloc
tracemalloc.start(5)
def inner():
    return bytes(1000)
def outer():
    return inner()
tb = tracemalloc.get_object_traceback(outer())
print([frame.lineno for frame in tb])  # → [7, 6, 4]
print(tb.format(most_recent_first=True)[1].strip())  # → return bytes(1000)
tracemalloc.stop()

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности