Qual è il nome corretto per eseguire il debug aggiungendo istruzioni 'print'
-
06-07-2019 - |
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?
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!
L'ho sempre conosciuto con il termine "debug rapido e sporco", o semplicemente "debug sporco" in breve.