2009-03-18 18 views
6

Recentemente ho tenuto un discorso su una pletora di Open Source (alcuni sono open-source borderline, lo ammetto) strumenti di debug e il pubblico ha fatto grandi aggiunte alla mia lista.Qual è il tuo strumento di debug open source preferito?

Mi piacerebbe raccogliere la conoscenza (e dare credito) al pubblico di StackOverflow spesso brillante su questa stessa domanda.

Non ci sono vincoli WebService/Java/.Net/HTML/Perl dei linguaggi di programmazione a questa domanda. Finora, ho pontificare su:

  1. fs_usage per la ricerca di ciò che mantiene la scrittura su disco tanto
  2. lsof per il debug di quello che porti o file sono aperti
  3. tcpdump, wireshark, eavesdrop per guardando la tua il traffico di rete (dati malformati?)
  4. firebug per il debug di CSS, JavaScript, e la pagina problemi di caricamento
  5. SoapUI, poster, e per la risoluzione dei problemi SOAP e servizi web RESTful
  6. Eclipse Memory Analyzer e VisualVM per l'utilizzo della memoria Java e GC emette
  7. BTrace per strumentazione codice Java già distribuito ai server di produzione
  8. curl per guardare HTML grezzo, sans del browser redirect, e il test -calling servizi web
  9. JMeter per webapps di test di carico e di altri componenti supportati che fallire sotto stress

Quali strumenti Open source può y aggiungi alla lista?

risposta

1

Per i programmatori Java là fuori perché non provare il Omniscient Debugger? Permette il debugging nel tempo (pensa al time-travel) che è molto utile.

+0

Una volta avevo una copia di RetroVue. Ha fatto la stessa cosa, ma era ai tempi di Java 1.2, quindi era molto lento ... troppo lento per essere sfruttato al massimo delle sue potenzialità. – CoverosGene

5

Per la folla di gcc, c'è gdb e gprof. Ho fatto molto lavoro con quei due.

+0

Il mio cappello va, 'ya. – dmckee

+0

Esiste un altro debugger C per Linux/Unix diverso da gdb? Gdb mi frustra a non finire dopo aver usato ntsd ... Mi piacerebbe trovare l'equivalente di ntsd. –

2

xdebug per PHP può essere una manna dal cielo.

5

gdb è ovviamente il re e valgrind ha i suoi fan.

Per un buon wrapper GUI open source su gdb, vedere DDD. E ancora un altro front-end gdb - Insight.

1

Non lo chiamerei un preferito, ma quando ne hai bisogno, netcat è abbastanza bello poter scrivere il traffico di rete.

0
printf("%s - %d: %d", __FILE__, __LINE__, variable); 
qDebug() << variable; 

;-)

3

printf()

+0

O il controllo della lunghezza minima non viene eseguito durante la modifica o la formattazione ha superato la linea ;-) –

1

mi unirò la folla C:

gdb, valgrind, gprof.

Modifica: Mi unirò anche al pubblico di Java.

strumenti Eclipse di debug, firebug,

+0

firebug? È bello, ma non ha nulla a che fare con Java. È un debugger JavaScript. –

+0

sì, lo so, ma non mi sentivo di mettere "ok, e mi unirò anche al pubblico JS". Sarò più attento la prossima volta. – Tom

+0

non importa, sono solo allergico all'intero problema di mix-up-Java-e-JavaScript ;-) –

4

Firebug per tutto ciò che riguarda il web e Eclipse debugger per passo attraverso il codice Java. jUnit e Mockito sono probabilmente utilizzati più nel mio lavoro quotidiano, sebbene non limitato al debug.

+1

Puoi collegare i tuoi riferimenti agli strumenti nella tua risposta? Aumenta davvero il valore per tutti. Grazie per i contributi. Se ne hai di più nello spazio Java, spara via! –

+0

@Matthew Scusa, non ci ho pensato. – Magnus

2

modulo di registrazione python.

firebug.

liveHTTP headers in firefox.

Safari webinspector.

Quando si tratta di eseguire il debug di applicazioni Web, non uso mai roba che aggiunge informazioni di debug/logging all'output del server.

Ho anche il mio middleware wsgi che uso per il debug di applicazioni web. Esegue il dump di tutte le risposte http in un database, quindi è possibile accedervi numerose volte. Può essere configurato per scaricare solo cose con codice di stato 500 ecc. In questo modo non devo inviare nuovamente richieste post con firebug quando eseguo il debug di roba ajax, è anche molto più facile leggere in questo modo.

+0

È possibile aggiungere collegamenti ipertestuali alle pagine liveHTTP e webinspector? Grazie per l'idea dei contributi! –

+0

Aggiunto. Il webinspector è installato con Safari, devi solo attivarlo. Ma non sono molto sicuro di safari su Windows. – Vasil

+0

+1 per vivere intestazioni HTTP. Questo è quello che ho usato per tracciare i dati delle richieste HTTP nel browser. –

1
function readVar($var) 
{ 
    echo '<pre>'; 
    var_dump($var); 
    echo '</pre>'; 
} 

Lo uso circa cento volte al giorno.

Sul lato client, è Firebug, o il classico primordiale:

<script> 
alert('hello1'); 
.......//borked code stops execution here? 
alert('hello2'); 
.......//hmmm we shall see 
</script> 

:)

+0

puoi elaborare? – anjanb

3

VisualVM potrebbe non essere il più potente strumento nella Java-mondo, ma ha un bel rapporto facilità d'uso-potenza.

Problemi correlati