2015-02-03 16 views
5

Sto riscontrando il comportamento dei punti di interruzione che si spostano verso la fine del file in Firefox Developer Edition quando si tenta di impostarli ovunque nel javascript.Perché i miei punti di interruzione fuggono dalla loro posizione prevista

enter image description here

A volte dopo il riavvio del PC o il giorno successivo che sta funzionando, ma sono sicuri se un certo codice porta a questo problema o se si tratta di un bug in Firefox Developer Edition.

risposta

2

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!

0

Installa firebug successivamente, ti chiederà di eseguire l'upgrade alla versione alpha accettare l'aggiornamento, ora puoi inserire il punto di interruzione nella linea desiderata.

Saluti.

+0

Do Firebug e Firefox Developer Edition si influenzano a vicenda? Cioè Firebug sostituirà gli strumenti di sviluppo integrati? Questo ha altre implicazioni? – Stephan

+1

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

0

Mi sono imbattuto in questo, e il problema era semplicemente che avevo un errore di sintassi nel codice in questione.

Non appena ho eliminato l'errore "====", sono riuscito a impostare i breakpoint in quella sezione di codice.

0

non si rompono LINEE

La mia soluzione era quella di eliminare le linee extra in una variabile in modo tutto sarà su una riga

sbagliato Sintassi:

var inner_html = 
'<a> 
    <div class="list_autocomplete"> 
     <div class="image_autocomplete"> 
     <img src="'+ img_url + '"> 
     </div> 
     <div class="label_autocomplete">' + item.label + '</div> 
     <div class="description_autocomplete">' + item.description + '</div> 
    </div> 
</a>'; 

Sintassi corretta:

var inner_html = '<a><div class="list_item_container"><div class="image"><img src="img/' + item.image + '"></div><div class="label">' + item.label + '</div><div class="description">' + item.description + '</div></div></a>';