¿Cuál es el nombre correcto para hacer la depuración agregando declaraciones 'print'

StackOverflow https://stackoverflow.com/questions/189562

  •  06-07-2019
  •  | 
  •  

Pregunta

Hay muchas maneras de depurar, usar un depurador es una, pero la más simple para el programador humilde y vago es agregar un montón de declaraciones de impresión a su código.

es decir

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

     ...

     print 'foo is returning:', bar
     return bar

¿Existe un nombre propio para este estilo de depuración?

¿Fue útil?

Solución

Sí, se conoce como printf () depuración , llamado así por la omnipresente función C:

  

Usado   para describir el trabajo de depuración realizado por   insertar comandos que generan más o   estado elegido con menos cuidado   información en puntos clave en el   flujo de programa, observando que   información y deducir lo que está mal   basado en esa información.

- depuración de printf () @ everything2

Los usuarios nativos de otros idiomas, sin duda, se refieren a él mediante el comando predeterminado print / log / trace disponible para su plataforma de codificación de elección, pero he escuchado el " printf () " nombre utilizado para hacer referencia a esta técnica en muchos idiomas distintos de C. Quizás esto se deba a su historia: mientras BASIC y FORTRAN tenían comandos básicos pero útiles de PRINT , C generalmente requería un poco más de trabajo para formatear varios tipos de datos: printf () fue (y a menudo sigue siendo) por mucho el medio más conveniente para este fin, proporcionando muchas opciones de formato integradas. Su primo, fprintf () , toma otro parámetro, la secuencia para escribir: esto permitió un cuidadoso " depurador " para dirigir la información de diagnóstico a stderr (posiblemente redirigido a un archivo de registro) mientras deja la salida del programa sin daños.

Aunque los usuarios del software de depuración moderno lo desprecian a menudo, la depuración printf () continúa demostrando ser indispensable: la herramienta FireBug para el navegador web Firefox (y herramientas similares ahora disponibles para otros navegadores) está construida alrededor de una consola ventana en la que los scripts de la página web pueden registrar errores o mensajes de diagnóstico que contienen datos formateados.

Otros consejos

He oído que se llama Depuración de cavernícolas

Pensé que la siguiente cita sería apropiada:

" La herramienta de depuración más efectiva sigue siendo un pensamiento cuidadoso, junto con declaraciones de impresión juiciosamente colocadas. "

  • Brian Kernighan, "Unix para principiantes" (1979)

Lo llamo seguimiento.

mis compañeros de equipo y yo lo llamamos "Depuración Oldschool".

Depuración del asiento de tus pantalones :)

Cuando estás en un sistema embebido, cuando estás en el límite y el lenguaje en el que estás codificando aún no tiene un depurador, cuando tu depurador se está comportando de manera extraña y quieres restaurar la cordura, y desea comprender cómo funciona el reencuentro en el código multiproceso, ...

En el mismo sentido que programación exploratoria , me gusta llamarlo depuración exploratoria . Esto sigue cuando el depurador no es lo suficientemente potente como para examinar tipos complejos en el programa, o invocar funciones auxiliares por separado, o simplemente no sabe lo suficiente sobre un error para usar dichas funciones directamente.

Yo llamo a esto "Hola, mamá" programación.

También he escuchado el término " Depuración de MessageBox " de la multitud de VB para referirme a este 'estilo' de 'depuración'.

Los sistemas integrados son a menudo el único método para instrumentar el código. Lamentablemente, la impresión lleva tiempo y afecta el flujo en tiempo real del sistema. Así que también instrumentamos a través de "rastreo" donde la información sobre el estado del sistema (salida de entrada de función, etc.) se escribe en un búfer interno para ser volcado y analizado más tarde. Los programadores integrados reales pueden depurar parpadeando un LED;)

He escuchado " depuración de Gutenberg " siendo utilizado, en honor a el tipo que inventó la imprenta .

Yo lo llamaría simplemente " registro " ;.

Normalmente me refiero a él como rastreo.

Tenga en cuenta que en Visual Studio puede establecer puntos de interrupción que simplemente agregan seguimiento. Haga clic derecho en un punto de interrupción, seleccione " cuando se presiona ... " y verifique el " Imprima un mensaje " opción.

Además, en .Net puede agregar declaraciones de depuración (creo que en realidad es Debug.WriteLine) para enviar a la consola. Estas declaraciones solo se incluyen en las compilaciones de depuración: el compilador las omitirá automáticamente cuando realice una compilación de lanzamiento.

Depuración clásica

¿Afirmaciones manuales? ¿Depurador de fobia?

depuración detallada!

(Un buen registro es increíblemente valioso para los problemas de depuración en la ejecución de sistemas de producción. Muchas declaraciones impresas verbales inútiles no lo son, pero registrar algo interesante cuando ocurre algo importante o inesperado es increíblemente importante. Si la única forma de saber cómo depurar el problema es con un depurador, te encontrarás en una situación difícil cuando el servicio que has creado no funciona para algunos de tus usuarios, pero no puedes reproducir el problema localmente).

Siempre lo he conocido por el término 'depuración rápida y sucia', o simplemente 'depuración sucia' en pocas palabras.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top