Firebug не показывает трассировку стека на наличие ошибок?

#javascript #firefox #error-handling #firebug #gecko

#javascript #firefox #обработка ошибок #firebug #геккон

Вопрос:

Я заметил, что даже при включенном «показывать трассировку стека с ошибками» из выпадающего списка только у возникающих ошибок, похоже, есть трассировки, но когда я это делаю: throw new Error('foo'); я не вижу для этого никакой трассировки стека, хотя, похоже, она отображается в консоли точно так же, как и другие возникающие ошибки, такие как iDoNotExist() .

Я чего-то не понимаю?

Также кажется, что я получаю трассировку стека для вызова console.error('foo'); . Странно.

Следует отметить, что трассировки стека действительно возникают в Webkit Inspector и Opera при выполнении throw new Error('foo'); .

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

1. Может помочь добавить, с какой версией Firebug и с какой версией браузера вы сталкиваетесь с этим.

2. Firefox 4, 5, 6 и последняя версия Firebug 1.7. Может быть, я мог бы попробовать последнюю бета-версию 1.7.1bx.

3. @rFactor, На консоли просто установите флажок «Показывать трассировку стека с ошибками»

Ответ №1:

Для других, размещенных здесь :

Проблема для меня заключалась в том, что showStackTrace для Firebug по умолчанию установлено значение false.

Вот как это включить :

  1. Переход about:config в Firefox

  2. Измените значение предпочтения extensions.firebug.showStackTrace с false на true (двойной щелчок переключает значение).

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

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

2. Ответ может не решить первоначальную проблему, но он, несомненно, решил мою проблему. 1

3. Я хотел бы поблагодарить разработчиков firebug за это приятное изменение конфигурации.

Ответ №2:

Я тестировал этот код в Firebug 1.7.1b2 (FF: 4.0.1, на win7), и он показывает мне трассировку стека:

 function a(){
    throw new Error('s');
};

function b(){
    a()
}

b();
  

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

1. Это не дает мне никакой трассировки стека.

Ответ №3:

Вы пробовали:

 var err = new Error();  
err.name = 'My custom error';
err.message = 'foo';  
throw(err);
  

Или даже (не всегда работает):

 throw 'foo';
throw('foo');
  

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

1. Трассировки стека нет. Пробовал даже на Aurora и Firebug 1.8 без разницы.