2015-02-03 7 views
5

Ich erfahre das Verhalten von Haltepunkten, die in Firefox Developer Edition an das Ende der Datei verschoben werden, wenn sie versuchen, sie irgendwo im Javascript zu setzen.Warum fliehen meine Haltepunkte von ihrer beabsichtigten Position

enter image description here

Manchmal nach dem PC oder am nächsten Tag neu zu starten, es funktioniert, aber ich bin nicht sicher, ob ein Code zu diesem Thema führt oder ob es sich um einen Fehler in Firefox Developer Edition.

Antwort

2

Wenn Sie einen Haltepunkt in einer Zeile festlegen, die keinen ausführbaren Code enthält, versucht der Debugger, hilfreich zu sein und den Haltepunkt auf die nächste Zeile mit ausführbarem Code zu verschieben. Dies ist nicht so einfach wie es scheint, da es möglich ist, Breakpoints für Scripts zu setzen, die bereits in Garbage Collections gesammelt wurden. Der Debugger kann also nicht immer feststellen, ob eine Zeile keinen ausführbaren Code enthält oder ob das entsprechende Script gerade verschrottet wurde .

Das Problem ist noch komplizierter, wenn Quellkarten beteiligt sind, da der Debugger herausfinden muss, welche Zeilen in der ursprünglichen Quelle der Zeile in der generierten Quelle entsprechen, auf der Sie den Haltepunkt setzen. Die Art und Weise, wie wir dies derzeit tun, ist nicht immer korrekt, was zu Problemen wie dem, das Sie sehen, führen kann.

Das heißt, es gibt andere Dinge, die erklären könnten, warum Ihre Breakpoints nicht so funktionieren, wie sie sollten. Zum Beispiel müssen wir Haltepunktpositionen auch Bytecode-Offsets zuordnen, was ebenfalls nicht immer genau erfolgt.

Wir sind gerade dabei, den Breakpoint-Code im Debugger aktiv zu refactorisieren, um diese Probleme zu lösen. Ich wäre also nicht überrascht, wenn Sie auf eine Regression stoßen würden. Am besten wäre es, einen Bug in Bugzilla für das Problem zu erstellen, idealerweise mit Schritten zur Reproduktion.

Hoffe, dass hilft!

0

Installieren Sie Firebug danach, es wird Sie bitten, auf Alpha-Version zu aktualisieren, akzeptieren Sie das Upgrade, jetzt können Sie den Haltepunkt in der Zeile, die Sie möchten.

Grüße.

+0

Beeinflussen Firebug und die Firefox Developer Edition einander? I.e. Wird Firebug die integrierten Dev Tools ersetzen? Hat das andere Implikationen? – Stephan

+1

Nur Firebug installiert. Es sieht so aus, als ob es die integrierten Entwicklerwerkzeuge ersetzt.Ich habe jedoch das gleiche Verhalten bezüglich der Breakpoints, also werde ich Firebug wieder entfernen. – Stephan

0

Ich lief gerade in das, und das Problem war einfach, dass ich einen Syntaxfehler im fraglichen Code hatte.

Sobald ich das problematische "====" herausnahm, konnte ich Haltepunkte in diesem Codeabschnitt setzen.

0

NICHT LINES BREAK

Meine Lösung bestand darin, die zusätzliche Zeilen in einer Variablen zu löschen, so dass alles auf einer Linie

Falsche Syntax wird:

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>'; 

Korrekte Syntax:

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>'; 
Verwandte Themen