На моїй консолі Firebug на різних сайтах я бачу багато подібних повідомлень, включаючи те, що я намагаюся налагодити. breakOnError.js
виявляється якийсь системний / файл Firebug, нічого спільного з жодним із сайтів, для яких це з'являється. Нічого очевидного я не бачу, що число 674 тут може стосуватися, хоча воно, здається, відображається на кількох сторінках (включаючи цю саму сторінку запитань):
DebuggeeWouldRun: debuggee `self-hosted:674` would run breakOnError.js (line 105, col 13)` <system>
Консоль Firebug просто заповнює їх, якщо у вікні "Скрипт" увімкнено функцію " Перерва на винятки" , іноді навіть якщо я вмикаю її після завантаження сторінки зі швидкістю трохи більше однієї секунди. Жовтий, як попереджувальне повідомлення (це не помилка), але я не знаю, про що воно могло би попереджати мене.
Я не можу знайти будь-якої зрозумілої інформації про те, що це таке або що це означає. Все, що навіть є майже актуальним, - це кілька питань підтримки Firefox / Mozilla ( 1249469 та 1252945 ), які обговорюють деякі дуже тонкі деталі впровадження ... що б це не було. Жодних підказок я не можу зрозуміти, що означає щось із цього насправді.
Що це, і що це означає?
Я виявив те, що схоже на можливе пояснення від того, кого я вважаю розробником Mozilla , але це дуже технічно (призначена аудиторія = інші розробники Firefox), і я не дуже розумію, що це насправді означає. Я думаю, це може означати, що Firefox скаржиться, тому що йому не подобається, як Firebug намагається перебрати перерву, і Firebug реагує на ці системні повідомлення як попередження консолі, а потім просто продовжує робити те, що робив?
Нещодавно я запустив реалізацію Debugger.DebuggeeWouldRun, яка є помилкою, яку видають, коли код налагодження намагається повторно ввести код налагодження, не проходячи блаженну "функцію виклику" (в даний час DFpeval і DOpexecuteInGlobal) 1 . Ці повторні записи є причиною того, що налагоджувач справді не може призупинити налагодження.
Наразі це не помилка, а попередження, а це - допомогти точно визначити сайти в коді налагодження, який намагається повторно ввести код налагодження. Намір полягає в тому, що як тільки всі сайти будуть виправлені, це буде помилка.
... тоді є цей коментар, завдяки якому я думаю, що це, можливо, якийсь симптом химерності Firefox, про який мені не потрібно хвилюватися, але знову ж таки я не розумію, що це означає, особливо що це означає " розміщений код "у цьому контексті (чи вважатиметься розширення, як Firebug, як власне розміщення, оскільки воно знаходиться на моїй машині?), і я поняття не маю, що таке" відділення для налагодження ":
Одним із недоліків є те, що всі власні коди у відділенні для налагодження заборонені. Це означає, що деякі операції, які насправді мають бути дозволені, попереджаються / забороняються.
Ramhound у коментарях припустив, що це може бути помилка Firebug (ugghhh), і запитав про рядок коду, про який йдеться у повідомленні.
Очевидно, якщо є помилка, це питання про розробників Firebug, це не місце, щоб спробувати її виправити. Я розміщую повідомлення, якщо це допоможе комусь пояснити, що насправді означає вміст повідомлення ("налагоджувач", "власне розміщення: 674", "працює"). Це функція навколо рядка, я позначив рядок 105 коментарем:
onDebuggerPaused: function(context, event, packet)
{
// Check the packet type, only "exception" is interesting in this case.
var type = packet.why.type;
if (type != "exception")
return;
// Reset the break-on-next-error flag after an exception break happens.
// xxxHonza: this is how the other BON implementations work, but we could reconsider it.
// Another problem is that the debugger breaks in every frame by default, which
// is avoided by reseting of the flag.
this.breakOnNext(context, false);
// At this point, the BON flag is reset and can't be used anymore in |shouldResumeDebugger|.
// So add a custom flag in packet.why so we know that the debugger is paused because of
// either the Console's "Break On Next" or the Script's "Break On Exceptions" option.
packet.why.fbPauseDueToBONError = true;
// Get the exception object.
var exc = DebuggerLib.getObject(context, packet.why.exception.actor);
if (!exc)
return;
Trace.sysout("BreakOnError.onDebuggerPaused;", {exc: exc, packet: packet});
// Convert to known structure, so FirebugReps.ErrorMessage.copyError() works.
var error = {
message: exc + "", // <<<<<<<<<<<<<<<<<<<<<<<<<<<< THIS IS LINE 105 <<<<<<<<<<<<<<<<
href: exc.fileName,
lineNo: exc.lineNumber
};
var lineNo = exc.lineNumber - 1;
var url = exc.fileName;
// Make sure the break notification popup appears.
context.breakingCause =
{
message: error.message,
copyAction: Obj.bindFixed(ErrorMessage.copyError, ErrorMessage, error),
skipAction: function addSkipperAndGo()
{
// Create a breakpoint that never hits, but prevents BON for the error.
var bp = BreakpointStore.addBreakpoint(url, lineNo);
BreakpointStore.disableBreakpoint(url, lineNo);
Debugger.resume(context);
},
};
},