sys.settrace регистрирует функцию, получающую события выполнения Python-кода: вызов, строку, возврат и исключение. Дебаггер использует их для остановок, шагов и исследования frame.
Каков механизм работы sys.settrace и как на его основе работают дебаггеры и профайлеры?
sys.settrace регистрирует функцию, получающую события выполнения Python-кода: вызов, строку, возврат и исключение. Дебаггер использует их для остановок, шагов и исследования frame.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
sys.settrace регистрирует функцию, получающую события выполнения Python-кода: вызов, строку, возврат и исключение. Дебаггер использует их для остановок, шагов и исследования frame.
Trace-функция может вернуть локальный обработчик для текущего frame; трассировка построчно создаёт заметные накладные расходы. Настройка действует на текущий поток, другие потоки требуют отдельного подключения. Профилировщики могут использовать sys.setprofile, sampling или современные monitoring API, поэтому не все они построены на settrace. Содержимое frame может включать секреты.
Источник: docs.python.org.