Clase wxDebugContext
Una clase para realizar varias operaciones de depuración y rastreo de memoria.
La funcionalidad completa (como imprimir los objetos actualmente asignados) solo está presente en una compilación de depuración de wxWidgets, es decir, si el símbolo __WXDEBUG__ está definido. wxDebugContext y las funciones y macros relacionadas se pueden compilar estableciendo wxUSE_DEBUG_CONTEXT a 0 en setup.h.
Funciones miembro
Check()
static int wxDebugContext::Check(bool checkAll = false)
Comprueba si hay errores en los bloques de memoria, empezando por el punto de control establecido actualmente.
Valor de retorno
Devuelve el número de errores, por lo que un valor de cero representa éxito. Devuelve -1 si se ha detectado un error que impide continuar con la comprobación.
Dump()
static bool wxDebugContext::Dump()
Realiza un volcado de memoria desde el punto de control actual, escribiendo en el flujo de depuración actual.
Llama a la función miembro Dump para cada instancia derivada de wxObject.
Valor de retorno
true si la función tuvo éxito, false en caso contrario.
GetCheckPrevious()
static bool wxDebugContext::GetCheckPrevious()
Devuelve true si el asignador de memoria comprueba todos los bloques de memoria anteriores en busca de errores.
Por defecto, esto es falso ya que ralentiza la ejecución considerablemente.
GetDebugMode()
static bool wxDebugContext::GetDebugMode()
Devuelve true si el modo debug está activado.
Si el modo debug está activado, los operadores wxObject new y delete almacenan o utilizan información sobre la asignación de memoria. En caso contrario, estos operadores realizarán directamente malloc y free.
GetLevel()
static int wxDebugContext::GetLevel()
Obtiene el nivel de depuración (por defecto 1).
El nivel de depuración es utilizado por la función wxTraceLevel y la macro WXTRACELEVEL para especificar cómo de detallada es la información de rastreo; establecer un nivel diferente solo tendrá efecto si las sentencias de rastreo en la aplicación especifican un valor distinto de uno.
Obsoleto: Esto es obsoleto, reemplazado por la funcionalidad wxLog.
PrintClasses()
static bool wxDebugContext::PrintClasses()
Imprime una lista de las clases declaradas en esta aplicación, dando la derivación y si las instancias de esta clase pueden ser creadas dinámicamente.
PrintStatistics()
static bool wxDebugContext::PrintStatistics(bool detailed = true)
Realiza un análisis estadístico desde el punto de control actual, escribiendo en el flujo de depuración actual.
Se imprime el número de asignaciones de objetos y no objetos, junto con el tamaño total.
Parámetros
- detailed
- Si es true, la función también imprimirá cuántos objetos de cada clase han sido asignados, y el espacio ocupado por estas instancias de clase.
SetCheckpoint()
static void wxDebugContext::SetCheckpoint(bool all = false)
Establece el punto de control actual: Las operaciones Dump y PrintStatistics se realizarán a partir de este punto.
Esto permite ignorar las asignaciones que se hayan realizado hasta este punto.
Parámetros
- all
- Si es true, el punto de control se restablece para incluir todas las asignaciones de memoria desde que se inició el programa.
SetCheckPrevious()
static void wxDebugContext::SetCheckPrevious(bool check)
Indica al asignador de memoria que compruebe todos los bloques de memoria anteriores en busca de errores.
Por defecto, esto es falso ya que ralentiza la ejecución considerablemente.
SetDebugMode()
static void wxDebugContext::SetDebugMode(bool debug)
Activa o desactiva el modo de depuración.
Si el modo debug está activado, los operadores wxObject new y delete almacenan o utilizan información sobre la asignación de memoria. En caso contrario, estos operadores realizarán directamente malloc y free.
Por defecto, el modo debug está activado si __WXDEBUG__ está definido. Si la aplicación utiliza esta función, debe asegurarse de que toda la memoria de objeto asignada es liberada con el mismo valor de modo debug. De lo contrario, el operador de borrado podría intentar buscar información de memoria que no existe.
SetLevel()
static void wxDebugContext::SetLevel(int level)
Establece el nivel de depuración (por defecto 1).
El nivel de depuración es utilizado por la función wxTraceLevel y la macro WXTRACELEVEL para especificar cómo de detallada es la información de rastreo; establecer un nivel diferente sólo tendrá efecto si las sentencias de rastreo en la aplicación especifican un valor distinto de uno.
Obsoleto: Esto es obsoleto, reemplazado por la funcionalidad wxLog.
SetShutdownNotifyFunction()
static void wxDebugContext::SetShutdownNotifyFunction(wxShutdownNotifyFunction func)
Instala una función para ser llamada al final del apagado de wxWidgets.
Será llamada después de que todos los ficheros con instancias globales de wxDebugContextDumpDelayCounter hayan ejecutado sus destructores.
La función de apagado no debe tomar parámetros y no debe devolver nada.