Firebug - точка останова не срабатывает

Я устанавливаю точки останова во внешнем файле JS, и мне не удалось заставить Firebug последовательно попасть в точку останова. Иногда это работает, но в большинстве случаев - нет. Единственный способ заставить его работать - это включить "Прерывание при всех ошибках".

Я использовал отладчик; заявление тоже без везения.


person DotnetDude    schedule 16.03.2009    source источник
comment
Работает ли он во встроенном отладчике Firefox?   -  person NoBugs    schedule 06.08.2013


Ответы (11)


Если номера строк не зеленые, похоже, что Firebug не может отлаживать эту часть кода, потому что она выходит за рамки. Итак, если вы используете что-то вроде $ (function () {...}); Firebug не сможет получить доступ к функциям и переменным.

Имеет ли это смысл?

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

Надеюсь, это поможет.

person Eric Wendelin    schedule 16.03.2009
comment
Firebug также, кажется, часто не понимает, что код действителен. Это чаще всего происходит в циклах do while: Firebug отказывается озеленять номера строк, хотя и должен. - person Michael; 13.08.2013

Показывает ли Firebug код на вкладке «Сценарий» с зелеными номерами строк? Это указывает на отлаживаемые строки кода.

Я испытал этот симптом, когда ни один из номеров строк иногда не был зеленым. Я обновляю страницу, и они волшебным образом снова становятся зелеными.

person spoulson    schedule 16.03.2009
comment
Нет, обновление страницы не помогает. У них также нет зеленых номеров строк. - person DotnetDude; 16.03.2009

У меня тоже очень часто возникает эта проблема. Я обнаружил, что повторное открытие вкладки, похоже, помогает (точки останова не теряются). Но наиболее надежным способом взлома выглядит «Прекращать все ошибки».

Мне редко приходится что-то хорошее в IE, но в данном случае все получается правильно. Отладка JavaScript в VS просто работает. Он без проблем попадает в точки останова («отладчик») и останавливает выполнение всего остального кода JavaScript на странице. Так что я довольно часто использую его как резервную копию.

person Tsvetomir Tsonev    schedule 16.03.2009

У меня возникла эта проблема при попытке отладки страниц внутри фреймов с помощью Firebug 1.4. Выбор «Показать только этот фрейм» или «Открыть фрейм в новой вкладке» в контекстном меню «Этот фрейм», а затем обновление страницы, кажется, делает скрипты доступными для отладки.

person Nathan    schedule 13.08.2009

Вкладка "Консоль" в Firebug показывает ошибки для любого другого вашего JavaScript? Я обнаружил, что если ошибки JavaScript существуют для кода до точки останова отладки, то он никогда не дойдет до этой строки кода, пока не будет исправлена ​​предыдущая сломанная (ие).

person Ray    schedule 25.08.2009

У меня тоже периодически возникала эта проблема. Я выбрал «отключить все точки останова» и «включить все точки останова» в раскрывающемся списке точек останова, и он начал работать.

person KennyD    schedule 11.08.2014
comment
Спас мой день. Спасибо. - person K.A.D.; 19.02.2015

Я потратил на это 1 час.

У меня был такой тег <script>:

<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript">

Вы можете определить проблему?

Мне потребовалось все время, чтобы это заметить. Отсутствует /, закрывающий тег <script>.

<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript" />

Это наверняка из-за некоторого копирования / вставки, а затем попытки изменить код ... Я просто валял дурака в этом случае! :)

После добавления / я смог заставить точки останова работать в Firebug. Это имеет смысл.

Наконец-то я вижу эти благословенные зеленые числа.

person Leniel Maccaferri    schedule 09.10.2012

Просто чтобы добавить еще одну возможность к упомянутым.

Это произошло, когда я, естественно, был вынужден что-то исправить в процессе производства.

Я случайно ввел синтаксическую ошибку:

function: myFunc(){}

// function body

}

Просто так. В начале журнала консоли была ошибка, но я ее не заметил. Я все время пытался отладить этот файл, но Firebug не вмешивался.

Итак, если это происходит с вами: проверьте консоль, возможно, есть синтаксическая ошибка, приводящая к короткому замыканию загрузки файла.

person mtyson    schedule 24.02.2011

У меня это сработало после того, как я удалил все document.write() вызовы.

person KIT-Inwi    schedule 23.02.2015

Та же проблема с FF 36 и FB 2.0.8: ошибок в консоли нет, код работает нормально, но FB отображает HTML вместо JS, останавливается на debugger точке останова, но показывает ее в какой-то случайной строке HTML, не останавливается на обычных точках останова .

Я решил эту проблему, извлекая JS со страницы и переместив в отдельный файл JS.

Но была загвоздка: когда скрипт находился в собственном JS-файле, я не мог заставить «глобальные» переменные работать в FF (отлично работало в IE независимо от того, где был код), даже используя синтаксис window.varName. В итоге отладка в FB из отдельного файла вернулась к встроенной в продакшн.

person ajeh    schedule 09.03.2015

У меня тоже была эта пробема. Возможно, это связано с ответом KIT-Inwi ... Но я генерировал случайные строки с использованием PHP при каждой загрузке страницы.

Похоже, что Firebug запоминает номер строки всей HTML-страницы для установки точки останова, не обязательно строку Javascript, что означает, что номер строки, на которой вы установили точку останова на этой загрузке страницы, выиграл ' t обязательно будет той же строкой кода в следующий раз, когда вы ее загрузите, поэтому точка останова будет "прыгать".

Я не уверен, как бы вы разрешили это с помощью динамического содержимого, которое меняется каждый раз, но я исправил это, удалив случайные строки, чтобы строка с точкой останова была одинаковой при каждой загрузке страницы.

person colmde    schedule 02.05.2016