Domanda

Esistono molti modi per eseguire il debug, l'uso di un debugger è uno, ma quello semplice per l'umile, pigro programmatore è semplicemente aggiungere un mucchio di istruzioni di stampa al tuo codice.

cioè.

 def foo(x):
     print 'Hey wow, we got to foo!', x

     ...

     print 'foo is returning:', bar
     return bar

Esiste un nome proprio per questo stile di debug?

È stato utile?

Soluzione

Sì - è noto come printf () debug , che prende il nome dalla onnipresente funzione C:

  

Utilizzato   per descrivere il lavoro di debug svolto da   inserendo comandi che producono più o   stato scelto meno attentamente   informazioni nei punti chiave del   flusso di programma, osservandolo   informazioni e dedurre cosa c'è che non va   sulla base di tali informazioni.

- printf () debugging @ everything2

Gli utenti nativi di altre lingue si riferiscono senza dubbio al comando print / log / o trace predefinito disponibile per la loro piattaforma di codifica preferita, ma ho sentito il " printf () " il nome usato per riferirsi a questa tecnica in molte lingue diverse da C. Forse questo è dovuto alla sua storia: mentre BASIC e FORTRAN avevano comandi PRINT di base ma utili, in genere C richiedeva un po 'più di lavoro per formattare vari tipi di dati: printf () era (e spesso lo è ancora) di gran lunga il mezzo più conveniente a tal fine, fornendo molte opzioni di formattazione integrate. Suo cugino, fprintf () , accetta un altro parametro, lo stream su cui scrivere: questo ha permesso un attento "debugger" per indirizzare le informazioni diagnostiche su stderr (possibilmente reindirizzato a un file di registro) lasciando incorrotto l'output del programma.

Sebbene spesso guardato dagli utenti dei moderni software di debug, il debug di printf () continua a dimostrarsi indispensabile: lo strumento FireBug popolarissimo per il browser Web Firefox (e strumenti simili ora disponibili per altri browser) è costruito attorno a una console finestra in cui gli script delle pagine Web possono registrare errori o messaggi diagnostici contenenti dati formattati.

Altri suggerimenti

L'ho sentito chiamato Debug Caveman

Ho pensato che la seguente citazione sarebbe stata proposta:

" Lo strumento di debug più efficace è ancora un attento esame, abbinato a dichiarazioni di stampa posizionate con giudizio. "

  • Brian Kernighan, "Unix per principianti" (1979)

Lo chiamo Traccia.

io e i miei compagni di squadra lo chiamiamo " Oldschool Debuging " ;.

Debug della sede dei pantaloni :)

Quando sei su un sistema incorporato, quando sei al limite e la lingua in cui stai scrivendo non ha ancora un debugger, quando il tuo debugger si comporta in modo strano e vuoi ripristinare un po 'di sanità mentale, e vuoi capire come funziona il rientro nel codice multi-thread, ....

Allo stesso modo di programmazione esplorativa , mi piace chiamarla debug esplorativo . Ciò si verifica quando il debugger non è abbastanza potente da esaminare tipi complessi nel programma o invocare le funzioni di supporto separatamente o semplicemente non si conosce abbastanza su un bug per utilizzare direttamente tali funzionalità.

Lo chiamo " Ciao, mamma " programmazione.

Ho anche sentito il termine " MessageBox debugging " dalla folla VB per fare riferimento a questo "stile" di "debugging".

I sistemi embedded sono spesso l'unico metodo per strumentare il codice. Purtroppo la stampa richiede tempo ed influisce sul flusso in tempo reale del sistema. Quindi eseguiamo anche gli strumenti tramite " tracing " dove le informazioni sullo stato del sistema (uscita voce funzione ecc.) sono scritte in un buffer interno per essere scaricate e analizzate successivamente. I veri programmatori embedded possono eseguire il debug facendo lampeggiare un LED;)

Ho sentito " Debug di Gutenberg " in uso, in onore di il ragazzo che ha inventato la macchina da stampa .

Lo chiamerei semplicemente " registrazione " ;.

Di solito mi riferisco ad esso come traccia.

Si noti che in Visual Studio è possibile impostare punti di interruzione che aggiungono semplicemente traccia. Fai clic con il pulsante destro del mouse su un punto di interruzione, seleziona " quando colpito ... " e controlla " Stampa un messaggio " opzione.

Inoltre, in .Net è possibile aggiungere istruzioni di debug (penso che sia effettivamente Debug.WriteLine) da inviare alla console. Queste istruzioni sono incluse solo nelle build di debug: il compilatore le tralascerà automaticamente quando si esegue una build di rilascio.

Debug classico

Asserzioni manuali? Debugger Phobia?

debug dettagliato!

(p i problemi sono con un debugger, ti troverai in una situazione difficile quando il servizio che hai creato è rotto per alcuni dei tuoi utenti ma non puoi riprodurre il problema localmente.)

L'ho sempre conosciuto con il termine "debug rapido e sporco", o semplicemente "debug sporco" in breve.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top