2011-02-07 14 views
15

Esiste un sistema di debug che mi consente di registrare le chiamate di funzione javascript ei relativi parametri mentre si verificano? questo mi permetterebbe di tracciare ed eseguire il debug di applicazioni in situazioni live/client senza il calo delle prestazioni dovuto alla registrazione manuale.Debug javascript in tempo reale registrando chiamate e parametri delle funzioni

Modifica: Non sto parlando di chiamare manualmente le funzioni utilizzando una finestra 'console' e visualizzando i risultati, oppure aggiungendo manualmente i comandi 'trace' o 'log' nel mio javascript. Ne ho bisogno per funzionare con qualsiasi javascript in esecuzione.

risposta

18

È possibile sovrascrivere Function.prototype.call e recuperare argomenti e argomentis.callee?

Questo avrebbe l'effetto di generare rapporti su TUTTE le funzioni e quindi di essere super-prolisso, ma forse dovresti filtrare.

Poi ci sono la questione di come si desidera segnalare, magari con se (console) console.log

+1

Questa è un'idea fantastica. – mwilcox

+0

Fantastica idea, ma nessuna GUI fornita! Se avessi avuto conferma che la funzione Dynatrace ha ricevuto chiamate di funzione, avrei assegnato la taglia lì, ma fino ad allora, la tua è la migliore idea. –

+0

Qualcuno può fornire un esempio di questo? Se guardi a questa implementazione (http://jsfiddle.net/b7Sny/) in IE o FF, c'è un solo avviso quando mi aspetterei che ce ne sarebbero due. In altre parole, questa risposta sembra funzionare se uso 'myfunction.call()', ma non se eseguo 'myfunction()'. – user979672

0

Sì. tutti i principali browser hanno un debugger integrato (IE, Chrome, Safari) o disponibile come componente aggiuntivo (Firebug per Firefox).

0

Firebug fa bene. Oppure puoi utilizzare anche il debugger integrato di Google Chrome.

2

@Jenko se si sta cercando qualcosa di simile a un debugger IDE, in questo caso Internet Explorer 8 e 9 dispongono di strumenti di sviluppo incorporati (premere F12) e Chrome ha anche strumenti di sviluppo. Sia IE che Chrome ti consentono di impostare punti di interruzione nel codice e di controllarlo mentre è in esecuzione. Firefox ha Firebug, che altri hanno menzionato, e permette anche di impostare i breakpoint ed esaminare l'esecuzione del codice. Opera ha Dragonfly (built-in) e ha le stesse caratteristiche degli altri browser.

0

per Firefox Firebug per IE deeloper strumento per Chrome debugger incorporato è piacevole da usare

2

Mentre leggevo le risposte e ridendo le risposte duplicate di "È possibile utilizzare Firebug!" Mi sono reso conto ... puoi usare Firebug.

Seriamente, ha un comando "profilo" che fa esattamente quello che stai chiedendo. Safari e Chrome hanno questa funzione in modo da poter controllare anche lì. IE8/9 ha uno strumento "profiler" che è simile (ma non so se può essere chiamato da JavaScript con console.profile())

Questo ti darà tempi precisi dal momento che qualsiasi codice e la registrazione che aggiungi avrebbe anche influenzato la performance effettiva. E poiché questa funzione è nei browser principali, ottieni una quantità ragionevole di dati.

enter image description here

0

Probabilmente il migliore in linea Javascript Quality Code Controll è JSLint. Non solo controlla il codice per gli errori, ma migliora lo stile di codifica dei programmi interamente < < questo è il motivo per cui l'autore lo ha realizzato in primo luogo. La mia 0,02 $

http://www.jslint.com/

2

ho trovato Fireflow: https://addons.mozilla.org/en-us/firefox/addon/fireflow/ incredibili utile.

+0

Non funziona nel 2016! Firebug sembra essere fuso in Firefox DevTool. Ho trovato questo trucco: https://javascriptweblog.wordpress.com/2010/06/01/a-tracer-utility-in-2kb/ che ho intenzione di provare. –

Problemi correlati