Как получить строку трассировки стека без повышения исключения в python?

traceback.format_exc()

может получить его с созданием исключения.

traceback.print_stack()

печатает стек без необходимого исключения, но он не возвращает строку.

Кажется, не существует способа получить строку трассировки стека, не создавая исключения в python?

Ответы

Ответ 1

Это traceback.extract_stack(), если вам нужен удобный доступ к именам модулей и функций и номерам строк или ''.join(traceback.format_stack()), если вы просто хотите, чтобы строка выглядела как вывод traceback.print_stack().

Ответ 3

Используйте модуль inspect. В частности, проверьте. currentframe() - но весь модуль существует с целью взглянуть на состояние вашей программы в данный момент времени.

Некоторые полезные проверочные трюки здесь.