Blog de Jorge Pedraza

febrero 4, 2011

Debug y Trace

Filed under: Aplicaciones Windows — JorgePedraza @ 7:38 pm
Tags: , , ,

Debug y Trace en .NET

Introducción

Las funciones de depuración integradas en Visual Studio 2010 son lo suficientemente potentes como para poder encontrar y subsanar la mayoría de los errores (de Sintaxis y lógicas) pero, en algunos casos, necesitará agregar instrucciones de seguimientos en su código que le permitirán comprender por qué la aplicación tiene comportamiento inadecuado. este sistema resulta especialmente útil cuando los problemas se producen únicamente en las aplicaciones compilidas que ya han sido previamente instalada en la maquina de destino. Por fortuna .NET Framework ofrece varias clases que simplifican esta tarea, como lo son las Clase Debug y Trace.

Requerimientos:

  • Framework 4.0
  • Microsoft Visual Studio 2010 (Plataforma de Desarrollo)
  • Microsoft Windows 7 o Superior

 Contenido:

Trace (Clase)

Debug (Clase)

Proporciona un conjunto de métodos y propiedades que le ayudan a realizar el seguimiento de la ejecución del código. No se puede heredar esta clase Proporciona un conjunto de métodos y propiedades que ayudan a depurar el código. No se puede heredar esta clase.
Ambas clases comparten métodos y Propiedades en comun:

Propiedades públicas

AutoFlush
Obtiene o establece si debe llamarse a Flush en Listeners después de cada escritura.
IndentLevel
Obtiene o establece el nivel de sangría.
IndentSize
Obtiene o establece el número de espacios de una sangría.
Listeners
Obtiene la colección de los agentes de escucha que está supervisando los resultados del seguimiento.

Métodos públicos

Assert
Sobrecargado. Comprueba una condición y muestra un mensaje si ésta es false .
Close
Vacía el búfer de resultados y, a continuación, cierra Listeners .
Fail
Sobrecargado. Emite un mensaje de error.
Flush
Vacía el búfer de resultados y hace que los datos almacenados en el búfer se escriban en Listeners .
Indent
Aumenta la propiedad IndentLevel actual en uno.
Unindent
Disminuye la propiedad IndentLevel actual en uno.
Write
Sobrecargado. Escribe información sobre el seguimiento en los agentes de escucha de seguimiento de la colección Listeners .
WriteIf
Sobrecargado. Escribe información acerca del seguimiento en los agentes de escucha de seguimiento de la colección Listeners si una condición es true .
WriteLine
Sobrecargado. Escribe información sobre el seguimiento en los agentes de escucha de seguimiento de la colección Listeners .
WriteLineIf
Sobrecargado. Escribe información acerca del seguimiento en los agentes de escucha de seguimiento de la colección Listeners si una condición es true .

Las clases Debug y Trace son idénticas y exponen los mismos métodos. La única diferencia que existe entre ellas es que las llamadas a los métodos de la clase Debug se incluirán en la aplicación compilada sólo si la constante de compilación Debug se encuentra definida, mientras que las llamadas a los métodos de la clase Trace sólo se incluye si la constante de compilación Trace se encuentra definida. De forma predeterminada, el tipo de configuración Debug define estas dos constantes de compilación, mientras que el tipo de configuración Realease define únicamente la constante Trace. De esta forma, la salida de la clase trace estará incluida en todas las aplicaciones compiladas en el modo Release.

Trace (Clase)

Debug (Clase)

Sub MiProc()

Trace.WriteLine("Escritura de MiProc")

Trace.Indent()

Trace.WriteLine("Dentro de MiProc")

Trace.Unindente()

Trace.WriteLine("Salir de MiProc")

End Sub

Sub MiProc()

Debug.WriteLine("Escritura de MiProc")

Debug.Indent()

Debug.WriteLine("Dentro de MiProc")

Debug.Unindente()

Debug.WriteLine("Salir de MiProc")

End Sub

 

switchs Proporciona una clase base abstracta (MustInherit en Visual Basic) para crear nuevos modificadores de depuración y seguimiento. Existen dos tipos de switchs predefinidos:

TraceSwitch (Clase)
BooleanSwitch (Clase)
Proporciona un modificador de varios niveles para controlar los resultados del seguimiento y la depuración sin volver a compilar el código. Proporciona un modificador de activación/desactivación sencillo que controla los resultados de la depuración y del seguimiento.

Cuando se establece el nivel de seguimiento con un archivo de configuración, se especifica un valor entero que se corresponda con un miembro de enumeración en lugar del miembro de enumeración en sí, tal y como se muestra en el siguiente ejemplo.

<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="4" />
</switches>
</system.diagnostics>
</configuration>

En la siguiente tabla se muestra la relación que existe entre los miembros de la enumeración TraceLevel y las entradas correspondientes del archivo de configuración.

Nivel de seguimiento Valor del archivo de configuración
Off 0
Error 1
Warning 2
Info 3
Verbose 4

Nombre de Miembros

Error
Envía mensajes de control de errores.
Info
Envía mensajes informativos, advertencias y mensajes de control de errores.
Off
No envía ningún mensaje seguimiento ni de depuración.
Verbose
Envía todos los mensajes de seguimiento y depuración.
Warning
Envía advertencias y mensajes de control de errores.

 

TraceSwitch (Clase)
BooleanSwitch (Clase)
Private Shared myTraceSwitch As New TraceSwitch("MySwitch", "Description")
myTraceSwitch.Level = TraceLevel.Info
Trace.WriteLineIf(myTraceSwitch.TraceError, "It displayed because it lower then info")
Dim dataSwitch As New BooleanSwitch("Data", "ModulodeNivel Establecido!")
If dataSwitch.Enabled Then
MsgBox("Si esta Habilitado el Nivel Data")
Else
MsgBox("No esta Habilitado el Nivel Data")
End If

 

Código Fuente :TestDebugTrace (Visual Basic 2010)

Conclusión: Estas clases son de gran utilidad al momento de hacer seguimiento en aquellas aplicaciones compilidas que ya han sido instaladas en el sitio de destino del cliente. Cuya finalidad es ayudar a Descubrir Posible comportamiento inesperado que no se habían presentado durante la fase de Desarrollo de la Aplicación.

Fuentes:

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: