2011-09-09 11 views
54

Vorrei impostare un punto di interruzione in una funzione "Cart.add" nei debugger JavaScript di Chrome o Safari. Il problema è che questa funzione è definita in un file JS minificato di grandi dimensioni e non esiste su una riga da sola.Come impostare un punto di interruzione su una funzione JS ridotta in Chrome o Safari?

Alcuni documenti dicono che i debugger basati su WebKit supportano i comandi "break" o "debug" nella console di debug, ma quelli non sembrano funzionare nelle versioni più recenti del debugger.

L'impostazione di un punto di interruzione su quella riga del file JS non funziona, poiché ci sono molte funzioni su tale linea.

Qualche suggerimento?

+0

Puoi annullare il javascript e farlo di nuovo? http://stackoverflow.com/questions/822119/online-tool-to-unminify-decompress-javascript – Rikon

risposta

4

Il debugger statement è probabilmente quello che stai cercando.

Valutazione del DebuggerStatement produzione può consentire un'implementazione di provocare un punto di interruzione quando eseguito in un debugger. Se un debugger non è presente o attivo, questa affermazione non ha alcun effetto osservabile.

La produzione DebuggerStatement: debugger ; è valutata come segue:

  1. Se un impianto debugging attuazione definito è disponibile e abilitata, quindi

    a. Eseguire un'azione di debug definita dall'implementazione.

    b. Sia il risultato sia un valore di completamento definito dall'implementazione.

  2. Else

    a. Lascia che il risultato sia (normale, vuoto, vuoto).

  3. Risultato restituito.

Il break dichiarazione è per i loop in uscita e switch dichiarazioni e non ha nulla a che fare con il debug.

La vera soluzione è però di non inculare il codice in primo luogo :)

145

In Chrome quando si apre Scripts scheda è possibile abbellire il file selezionato facendo clic sul pulsante { } ("print Abbastanza") nella parte inferiore . Dopodiché puoi trovare la tua linea e impostare un punto di interruzione. Il codice rimarrà impreziosito con i breakpoint in atto dopo l'aggiornamento della pagina.

+0

È già presente sul canale stabile? – Jan

+6

Questo suggerimento è fantastico, non credo che l'avrei capito da solo. – ZenLikeThat

+0

serg .. sei una leggenda – abbood

-1

Se è stata salvata la pagina Web, abbellire il file js utilizzando jsbeautifier.org che formatta l'intero script. Quindi sostituire il contenuto js con la versione abbellita. Da qui puoi eseguire facilmente il debug del tuo JS

+0

Si prega di prendere in considerazione che quando si ha a che fare con file js minificati, di solito significa che si sta eseguendo il debug qualcosa in produzione. La maggior parte delle volte non si ha accesso a quell'ambiente per sostituire lo script con la versione abbellita, o anche se lo si fa, non si dovrebbe farlo. –

Problemi correlati