Как пошагово выполнять построчную отладку при отладке JavaScript с помощью Opera Dragonfly?

#asp.net #opera #opera-dragonfly

#asp.net #opera #opera-dragonfly

Вопрос:

Я давний пользователь Opera как браузера для общего пользования, и из-за различных неприятностей с Firefox я решил взглянуть на Dragonfly. Первое, что бросилось мне в глаза, это то, что при отладке JavaScript я, похоже, не могу просто пошагово выполнить свой скрипт построчно.

Я использую ASP.NET а мой сценарий — это просто событие нажатия кнопки. Когда я помещаю свою точку останова в первую строку функции и нажимаю кнопку, точка останова будет достигнута, как и ожидалось. Вот тут я в замешательстве. Окно Dragonfly имеет четыре кнопки в левом верхнем углу — Продолжить, Войти, Перейти и выйти. Если я нажму Step Over или нажму F10, я ожидаю, что отладчик будет проходить через JavaScript точно так же, как Firebug, но вместо этого он, похоже, сразу пропускает всю остальную часть функции. То же самое происходит, если я нажимаю Продолжить или нажимаю F8. Если я нажимаю Step Into или нажимаю F11, я начинаю переходить к jQuery JavaScript, что явно не то, что я хочу!

Я просто упускаю что-то фундаментальное здесь? Я использую Opera 11.52, если это поможет.

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

введите описание изображения здесь

Теперь я бы ожидал, что существует какое-то нажатие клавиши, которое просто приведет меня к строке № 15. В Firebug и инструментах разработки IE это нажатие клавиши F10. Однако в Dragonfly F10, похоже, просто пропускает остальную часть кода JavaScript. То же самое относится и к Shift F11. F11 сам по себе подводит меня к этой части jquery.js а это, как уже упоминалось ранее, совсем не то место, где я хотел бы быть.

введите описание изображения здесь

Комментарии:

1. Я видел, что F10 иногда плохо себя ведет:-/, если у вас где-то есть ссылка, которая показывает эту проблему, я бы хотел проверить, исправлена ли она в превью Opera 12.

2. Кстати, единственный обходной путь — установить точку останова ниже функции, которую вы хотите перейти, использовать F10, очистить точку останова и продолжить в обычном режиме.

3. Не могли бы вы пояснить, что вы подразумеваете под «установить точку останова ниже функции, которую вы хотите перейти»?

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

5. Хорошо, кажется, это работает, даже если это очень неудобно. В отсутствие чего-либо более подходящего, если вы хотите добавить свой комментарий в качестве ответа, я пометлю его как решение.

Ответ №1:

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

Единственный обходной путь — установить точку останова ниже функции, которую вы хотите перейти, использовать F10, очистить точку останова и продолжить в обычном режиме. Например, на первом скриншоте выше вы бы установили новую точку останова в строке 15, нажали F8 и очистили точку останова в строке 15, когда остановились там. Я знаю, что это действительно раздражает 🙁

Я проделал немного больше работы, пытаясь воспроизвести эту ошибку, чтобы ее можно было исправить. В (закрытом) баг-трекере Opera это теперь отслеживается как проблема CORE-42532, похоже, мы добились некоторого прогресса, так что, надеюсь, это раздражение когда-нибудь исчезнет. А пока удачи вам в отладке!

Ответ №2:

Комментарии:

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