Отслеживаются ли входы и выходы метода в NodeJS / V8 через API отладки? - PullRequest
0 голосов
/ 26 февраля 2020

Я хотел бы знать, возможно ли отследить входы и выходы метода в NodeJS / V8.

Контекст

Я знаю, что NodeJS имеет некоторые опции профилирования для статистики кучи и использования процессора. Однако меня это не интересует. Меня интересуют только вызовы методов.

Для справки, я ищу что-то похожее на то, что Java имеет вместо для методов . Доступно через Java Интерфейс отладки в JDK.

Уже предпринята попытка

Я попытался копаться в документации V8 и NodeJS документации.

Для V8 все, что я мог найти, это возможность отслеживать и выводить v8_trace.json. Без ссылки, что на самом деле находится в файле трассировки. Метод записи? Выход? Понятия не имею. Также не найдено упоминаний о его содержимом в репозитории github v8.

Для NodeJS я обнаружил возможность запуска процесса с --inspect, который изменит команду запуска, которую я предпочел бы не делать. На всякий случай я просмотрел документацию отладчика и не нашел ссылок на какие-либо типы событий, которые он может перехватить. Я нашел ссылку на Trace Events. Однако эта часть API, похоже, касается только того, как запустить NodeJS в режиме трассировки с включенными категориями трассировки. В нем не указываются какие-либо события, которые могут быть обнаружены, где хранятся трассы и их содержимое.

Буду признателен за любую помощь, которую вы сможете мне оказать.

1 Ответ

0 голосов
/ 26 февраля 2020

V8 имеет флаг --trace, который будет отслеживать все входы и выходы функций. (Будьте готовы к лотам выходных данных в нетривиальных программах!)

Если вы хотите более детальный контроль, то вы можете установить точки останова. Chrome DevTools предоставляет готовый пользовательский интерфейс для этого; или вы можете использовать протокол инспектора для создания собственной интеграции.

...