2009-03-16 2 views
38

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

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

+0

Работает ли он во встроенном отладчике Firefox? – NoBugs

ответ

6

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

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

+0

Нет, обновление страницы не помогает. У них также нет номеров зеленой линии. – DotnetDude

15

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

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

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

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

+0

Firebug также часто не понимает, что код действителен. Это, по-видимому, чаще всего встречается во время циклов: Firebug отказывается от зеленого номера строк, хотя и должен. – Michael

6

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

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

6

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

+0

Спасибо большое. Это решило это для меня. –

+0

Это тоже решило мою проблему! – emurano

3

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

0

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

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

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

function: myFunc(){} 

// function body 

} 

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

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

2

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

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

2

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

+0

Сохранял мой день. Благодарю. –

0

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

0

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

I resolved it by extracting JS from the page and moving it into its own JS file.

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

0

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

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

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