Как Firebug работает внутренне?

Я отладил через JavaScript с помощью Firebug больше чем сотню раз, не волнуясь о том, что происходит там. Я хочу знать, как точно Firebug обрабатывает отладку JavaScript/DOM.

Скажите, что я установил точку останова на некотором операторе в методе и начинаю отлаживать. Я хочу знать то, что продолжается там?

10
задан MPelletier 30 April 2012 в 00:34
поделиться

2 ответа

Когда вы щелкаете строку для установки точки останова, Firebug записывает URL-адрес файла и номер строки на случай, если вы перезагрузите страницу. Затем он ищет URL / строку во внутренних структурах данных, чтобы решить, какую функцию Javascript (называемую в Mozilla «скриптом») вы хотите установить в точку останова. Затем он вызывает функцию платформы Mozilla, чтобы сопоставить номер строки с программным счетчиком относительно начала функции. Наконец, он вызывает платформу для установки точки останова на счетчике программы.

Когда вы активировали панель сценариев, Firebug зарегистрировал обратные вызовы на платформе. Один из них, onBreak, обрабатывает точки останова. Когда платформа запускает код JS, она проверяет свои внутренние структуры, чтобы узнать, установлена ​​ли точка останова для текущего счетчика программы. Если это так, он останавливает выполнение JS и обращается к firebug.

Firebug затем смотрит на точку останова, чтобы решить, является ли это условной точкой останова, есть ли у нее правильные данные для поддержки пользовательского интерфейса отладчика в этой точке останова и так далее. Если условия в порядке, он сообщает платформе о приостановке отладки, выполнении Javascript для веб-страницы и событиях платформы для веб-страницы. Затем он показывает исходный файл для точки останова и выделяет строку. Если условия плохие, это просто продолжается.

Сложные части возникают, когда платформа не поддерживает правильный номер строки для программирования сопоставления счетчиков. Например, Firebug имеет много кода для работы с eval () и обработчиками событий, созданными браузером.

На мой взгляд, подобные вопросы лучше подходят для группы новостей Firebug.

8
ответ дан 4 December 2019 в 01:29
поделиться

Firebug использует jsdIDebuggerService , который является службой отладчика.

Эта страница содержит информацию о внутреннем устройстве firebug , а также ссылку на исходный код. В нем нет точного определения всех деталей, но он должен служить отправной точкой.

2
ответ дан 4 December 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: