Estou vendo muitas mensagens como esta no meu console do Firebug em vários sites, incluindo um que estou tentando depurar. breakOnError.js
parece ser algum arquivo do sistema / Firebug, nada a ver com os sites para os quais isso aparece. Não há nada óbvio que eu possa ver que o número 674 aqui possa estar relacionado, embora pareça mostrar para várias páginas (incluindo essa mesma página de perguntas):
DebuggeeWouldRun: debuggee 'self-hosted:674' would run breakOnError.js (line 105, col 13)'
<system>
O console do Firebug é preenchido apenas se eu tiver Break on Exceptions ativado na janela Script, às vezes, mesmo se eu ligá-lo após a página já ter sido carregada, a uma taxa um pouco maior que um por segundo. É amarelo, como uma mensagem de aviso (não é um erro), mas eu não sei o que poderia me alertar.
Nãoconsigoencontrarnenhumainformaçãointeligívelsobreoqueéissoouoquesignifica.TudooqueérelevanteéumpardeproblemasdesuportedoFirefox/Mozilla( 1249469 e 1252945 ) discutindo alguns detalhes muito bons da implementação de ... o que quer que seja. Não há pistas que eu possa entender sobre o que isso realmente significa.
O que isso e o que isso significa?
Encontrei o que parece uma possível explicação de alguém que acredito ser um desenvolvedor Mozilla , mas é muito técnico (público-alvo = outros desenvolvedores do firefox) e eu realmente não entendo o que isso realmente significa. Eu acho que talvez isso signifique que o Firefox está reclamando porque não gosta da maneira como o Firebug está tentando assumir o controle de falhas, e o Firebug está respondendo a essas mensagens do sistema como avisos de console e continua fazendo o que estava fazendo?
I recently landed an implementation of Debugger.DebuggeeWouldRun, which is
an
error that's thrown when debugger code attempts to re-enter debuggee code
without going through a blessed "invocation function" (currently D.F.p.eval
and D.O.p.executeInGlobal) 1. These re-entries are the cause of the
debugger
not truly able to pause the debuggee.
Currently it is not an error but a warning instead, and is to help
pinpoint sites in debugger code that attempts to re-enter debuggee code. The
intention is that once all sites are fixed, it will be an error.
... então tem esse comentário, o que me faz pensar que talvez seja algum sintoma de uma peculiaridade do Firefox que eu não precise me preocupar, mas de novo eu não entendo o que isso significa, particularmente o que isso significa "código auto-hospedado" neste contexto (uma extensão como o Firebug contaria como auto-hospedada porque está na minha máquina?), e não tenho ideia do que "o compartimento de depuração" é:
One current shortcoming is that all self-hosted code in the debuggee
compartment is banned. This means some operations that should in fact be
allowed are warned against/disallowed.
O Ramhound nos comentários sugeriu que pode ser um bug do Firebug (ugghhh) e perguntou sobre a linha de código mencionada na mensagem.
Obviamente, se houver um bug, isso é uma questão para os desenvolvedores do Firebug, este não é o lugar para tentar consertá-lo. Estou postando no caso de ajudar alguém a explicar o que o conteúdo da mensagem ('debugee', 'auto-hospedado: 674', 'rodaria') realmente significa. Esta é a função em torno da linha, eu marquei a linha 105 com um comentário:
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);
},
};
},