40 Depurando

Hay tres versiones de la biblioteca Allegro: el c�digo normal optimizado, con soporte extra para depurar, y una versi�n para medir el rendimiento. Lea los ficheros readme espec�ficos de cada plataforma para saber c�mo instalar y enlazar con estas versiones alternativas. A pesar de que obviamente querr� usar la versi�n optimizada para la versi�n final de su programa, puede ser muy �til enlazar con la versi�n de depuraci�n, porque har� la tarea de depuraci�n m�s f�cil, y porque incluye aserciones que le ayudar�n a encontrar errores en su c�digo con antelaci�n. Allegro contiene varias funciones para ayudar en la depuraci�n:


void al_assert(char *file, int line);
Genera una aserci�n en el fichero en la l�nea especificada. El par�metro file debe estar codificado en ASCII. Si ha instalado un controlador propio de aserciones lo usa, o si la variable de entorno ALLEGRO_ASSERT escribe un mensaje en el fichero especificado por el entorno, y si no, aborta la ejecuci�n del programa con un mensaje de error. Normalmente usar� la macro ASSERT() en vez de llamar directamente a esta funci�n.

Relacionado con: ASSERT, al_trace, register_assert_handler.
void al_trace(char *msg, ...);
Muestra un mensaje de depuraci�n usando una cadena con formato printf() codificada en ASCII. Si ha instalado una funci�n trace propia, ser� usada, o si la variable de entorno ALLEGRO_TRACE existe se escribir� en el fichero especificado por �sta, en caso contrario se escribir� el mensaje en "allegro.log" en el directorio actual. Normalmente querr� usar la macro TRACE() en vez de llamar directamente a esta funci�n.
Relacionado con: TRACE, al_assert, register_trace_handler.
void ASSERT(condition);
Macro ayudante de depuraci�n. Normalmente se convierte en nada, pero si ha definido DEBUGMODE antes de incluir los ficheros de cabecera de Allegro, comprobar� la condici�n indicada y llamar� a al_assert() si �sta falla.
Relacionado con: al_assert, TRACE, register_assert_handler.
void TRACE(char *msg, ...);
register_trace_handler Macro ayudante de depuraci�n. Normalmente se convierte en nada, pero si ha definido DEBUGMODE antes de incluir los ficheros de cabecera de Allegro, pasar� el mensaje (que debe estar codificado en ASCII) a al_trace().
Relacionado con: al_trace, ASSERT.
void register_assert_handler(int
(*handler)(char *msg)); register_trace_handler Permite usar una funci�n propia para tratar las aserciones fallidas. A su funci�n se le pasar� un mensaje de error formateado codificado en ASCII, y deber� devolver distinto de cero si ha procesado el error, o cero para continuar con las acciones por defecto. Puede usar esto para ignorar aserciones fallidas, o para mostrar mensajes de error en modo gr�fico sin abortar el programa.
Relacionado con: al_assert, ASSERT.
void register_trace_handler(int
(*handler)(char *msg)); register_assert_handler Permite usar una funci�n propia para tratar los mensajes de trazado. A su funci�n se le pasar� un mensaje de error formateado codificado en ASCII, y deber� devolver distinto de cero si ha procesado el error, o cero para continuar con las acciones por defecto. Puede usar esto para ignorar los mensajes de trazado, para mostrarlos en un monitor monocromo secundario, etc.
Relacionado con: al_trace, TRACE.

Volver al Indice