Подтвердить что ты не робот

Firebug - точка останова не попадает

Я устанавливаю точки останова во внешнем JS файле, и я не смог заставить Firebug ударить точку останова согласованным образом. Это работает иногда, но в большинстве случаев это не так. Единственный способ заставить его работать - включить "Break on all errors"

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

4b9b3361

Ответ 1

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

Это имеет смысл?

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

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

Ответ 2

Отображает ли Firebug код на вкладке Script с зелеными номерами строк? Это указывает на отлаживаемые строки кода.

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

Ответ 3

У меня тоже такая проблема. Я обнаружил, что повторное открытие вкладки помогает (точки останова не потеряны). Но "Break on all errors" выглядит как самый надежный способ взлома.

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

Ответ 4

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

Ответ 5

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

Ответ 6

Я потратил на это 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. Это имеет смысл.

Наконец, я могу видеть эти благословленные зеленые числа.

Ответ 7

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

Ответ 8

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

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

Я непреднамеренно ввел синтаксическую ошибку:

function: myFunc(){}

// function body

}

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

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

Ответ 9

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

Ответ 10

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

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

Но был улов: когда script проживал в своем собственном JS файле, я не мог заставить "глобальные" переменные работать в FF (отлично работал в IE независимо от того, где был код), даже используя window.varName. Так закончилась отладка в FB из отдельного файла, но вернулась к inline для производства.

Ответ 11

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

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

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