Quando si imposta un punto di interruzione su una riga che non contiene codice eseguibile, il debugger cerca di essere utile e fa scorrere il punto di interruzione sulla riga successiva più vicina che può trovare con il codice eseguibile su di esso. Non è così facile come sembra, perché è possibile impostare punti di interruzione su script che sono già stati raccolti, quindi il debugger non può sempre dire se una riga non contiene codice eseguibile o se lo script corrispondente è stato appena raccolto .
Il problema è ancora più complicato quando sono coinvolte le mappe di origine, poiché il debugger deve capire quali linee nella sorgente originale corrispondono alla linea nella sorgente generata su cui si imposta il punto di interruzione. Il modo in cui lo facciamo attualmente non è sempre accurato, il che può portare a problemi come quello che stai vedendo.
Detto questo, ci sono altre cose che potrebbero spiegare perché i punti di interruzione non funzionano come dovrebbero. Ad esempio, abbiamo anche bisogno di mappare le posizioni dei punti di interruzione in offset del bytecode, cosa che non sempre viene eseguita con precisione.
Attualmente stiamo attivamente rifattorizzando il codice del punto di interruzione nel debugger nel tentativo di risolvere questi problemi, quindi non sarei sorpreso se colpissi una regressione. La cosa migliore da fare sarebbe quella di presentare un bug in bugzilla per il problema, idealmente con i passaggi da riprodurre.
Spero che questo aiuti!
fonte
2015-02-03 17:10:20
Do Firebug e Firefox Developer Edition si influenzano a vicenda? Cioè Firebug sostituirà gli strumenti di sviluppo integrati? Questo ha altre implicazioni? – Stephan
Appena installato Firebug. Sembra che sostituisca/nasconda gli strumenti di sviluppo integrati.Tuttavia, provo lo stesso comportamento per quanto riguarda i punti di interruzione, quindi ho intenzione di rimuovere nuovamente Firebug. – Stephan