Ich sehe in meiner Firebug-Konsole auf verschiedenen Sites eine Menge solcher Nachrichten, einschließlich einer, die ich zu debuggen versuche. breakOnError.js
Es scheint sich um eine System- / Firebug-Datei zu handeln, die nichts mit den Websites zu tun hat, für die dies angezeigt wird. Ich sehe nichts, worauf sich die Nummer 674 hier beziehen könnte, obwohl sie auf mehreren Seiten zu erscheinen scheint (einschließlich dieser Fragenseite):
DebuggeeWouldRun: debuggee `self-hosted:674` would run breakOnError.js (line 105, col 13)` <system>
Die Konsole von Firebug füllt sich nur mit ihnen, wenn im Skriptfenster die Option " Unterbrechung bei Ausnahmen" aktiviert ist, manchmal sogar, wenn ich sie nach dem Laden der Seite mit einer Geschwindigkeit von etwas mehr als einer Sekunde einschalte. Es ist gelb, wie eine Warnmeldung (es ist kein Fehler), aber ich weiß nicht, worüber ich gewarnt werden könnte.
Ich kann keine verständlichen Informationen darüber finden, was dies ist oder was es bedeutet. Alles, was auftaucht, was beinahe relevant ist, sind ein paar Firefox / Mozilla-Support-Probleme ( 1249469 und 1252945 ), die einige sehr feine Details der Implementierung von ... what this is diskutieren. Keine Ahnung, was das eigentlich bedeutet.
Was ist das und was bedeutet das?
Ich habe eine mögliche Erklärung von jemandem gefunden, von dem ich glaube, dass er ein Mozilla-Entwickler ist , aber es ist sehr technisch (Zielgruppe = andere Firefox-Entwickler) und ich verstehe nicht wirklich, was das eigentlich bedeutet. Ich denke, das bedeutet vielleicht, dass Firefox sich beschwert, weil es nicht gefällt, wie Firebug versucht, das Pausenhandling zu übernehmen, und Firebug auf diese Systemmeldungen als Konsolenwarnungen reagiert und dann einfach weiter macht, was es getan hat?
Ich habe kürzlich eine Implementierung von Debugger.DebuggeeWouldRun gelandet. Dies ist ein Fehler, der ausgelöst wird, wenn der Debugger-Code versucht, den Debuggee-Code erneut einzugeben, ohne eine gesegnete "Aufruffunktion" zu durchlaufen (derzeit DFpeval und DOpexecuteInGlobal) 1 . Diese Neueinträge sind die Ursache dafür, dass der Debugger den Debugger nicht wirklich anhalten kann.
Derzeit handelt es sich nicht um einen Fehler, sondern um eine Warnung. Sie soll Websites im Debugger-Code identifizieren, die versuchen, den Debuggee-Code erneut einzugeben. Die Absicht ist, dass es ein Fehler ist, wenn alle Sites repariert sind.
... dann gibt es diesen Kommentar, der mich denken lässt, dass dies vielleicht ein Symptom für eine Firefox-Eigenart ist, über die ich mir keine Sorgen machen muss, aber ich verstehe auch nicht wirklich, was es bedeutet, insbesondere, was es unter "selbst" versteht. gehosteter Code "in diesem Zusammenhang (würde eine Erweiterung wie Firebug als selbst gehostet gelten, weil sie sich auf meinem Computer befindet?), und ich habe keine Ahnung, was" das Debugee Compartment "ist:
Ein aktuelles Manko ist, dass der gesamte selbst gehostete Code im Debuggee-Bereich gesperrt ist. Dies bedeutet, dass einige Operationen, die tatsächlich erlaubt sein sollten, vor / unzulässig gemacht werden.
Ramhound schlug in Kommentaren vor, dass es sich möglicherweise um einen Firebug-Bug (ugghhh) handelt, und fragte nach der Codezeile, auf die in der Nachricht verwiesen wird.
Wenn es einen Fehler gibt, den die Firebug-Entwickler haben, ist dies natürlich nicht der richtige Ort, um ihn zu beheben. Ich poste, falls es jemandem hilft, zu erklären, was der Inhalt der Nachricht ("Flüchtling", "selbst gehostet: 674", "ausgeführt") tatsächlich bedeutet. Dies ist die Funktion um die Zeile, ich habe Zeile 105 mit einem Kommentar markiert:
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);
},
};
},