Отладка функций Javascript в Firebug - PullRequest
0 голосов
/ 30 августа 2011

Я пытаюсь отладить устаревшие скрипты с помощью Firebug.Согласно моим знаниям (которые я получил вчера) мы используем Step over (F10) для отладки построчно и Step into (F11) для поиска в функции JS.Но когда я использую Step into при любом вызове функции JS, он переходит к следующей строке.Я хочу увидеть, что скрыто внутри функции.Как мы можем это сделать?
Я сохранил точку останова внутри функции, а затем попытался Step into, тогда она получает контроль внутри тела функции.Но найти каждый метод функции и установить точку останова утомительно.Есть ли другой способ сделать это?или какой правильный путь?
Например:

 i2b2.ONT.ctrlr.FindBy = {

    clickSearchName: function() {
      // do some stuff
      i2b2.ONT.ctrlr.FindBy.doNameSearch(search_info);  // I tried Step into here
      // some more stuff
    }  

    doNameSearch: function(inSearchData) {
     // If I set break-point here then only I can debug it 
     // or it directly takes control to `// some more stuff` in `clickSearchName:function` 

    }
 }     

PS: Это также больше вызовов внешних функций JS.

Спасибо,
Аджинка.

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

Добавьте строку debugger; в свой код в том месте, где вы хотите взломать отладчик, это ключевое слово JavaScript, которое должно делать то, что вы хотите. Просто не забудьте вынуть его, когда закончите отладку кода.

0 голосов
/ 30 августа 2011

«Шаг в» войдет в функцию, если для функции есть источник JS.Если нет (например, для document.getElementById("foo"), он перешагнет через него, поскольку у него нет ничего, что он понимает, чтобы вступить в него.

Если вы можете указать нам рабочий пример, где у вас возникла проблема (либо jsFiddle (уменьшение проблемы, либо рабочая веб-страница) с инструкцией о том, где находится соответствующий код, мы, вероятно, можем помочь больше.

Судя по примеру кода, мне интересно, что вы пытаетесьшаг в. Строка кода, которая начинается с clickSearchName, определяет функцию. Она не выполняет ее. Таким образом, она не войдет в эту функцию, пока какой-нибудь более поздний код не вызовет clickSearchName. Итак, возможно, вынарушение определения функции и попытка войти в функцию, когда она не выполняется. Это всего лишь предположение, поскольку у нас нет рабочего примера, чтобы попробовать себя.

...