_BreakPoint( ) (Rutina de biblioteca API)
_BreakPoint( ) es una macro que genera la instrucción de punto de interrupción del depurador, INT 3. Esto puede ser de gran ayuda para la depuración de rutinas externas.
void _BreakPoint(void any)
void any; /* Pointer. */
Observaciones
Cuando se encuentra una llamada a _BreakPoint( ), el control se transfiere a su depurador. La mayoría de los depuradores devuelven el control a la línea de programa que incluye la instrucción INT 3 y usted debe aumentar manualmente el puntero de la instrucción (IP) una vez pasada esta instrucción. En ese momento, debe utilizar su depurador para establecer puntos de interrupción adicionales. Quite siempre cualquier punto de interrupción antes de salir de una rutina externa. Para obtener más información acerca de la depuración, vea Acceso a la API de Visual FoxPro.
Ejemplo
El siguiente ejemplo utiliza la macro _BreakPoint( ) para colocar una instrucción INT 3 que los depuradores reconocen como un punto de interrupción.
Código Visual FoxPro
SET LIBRARY TO BPOINT
Código C
#include <pro_ext.h>
FAR Example(ParamBlk FAR *parm)
{
int RetValue;
_BreakPoint(); // debugger breaks execution here
_HLock(parm->p[0].val.ev_handle);
_HLock(parm->p[1].val.ev_handle);
RetValue = _StrCmp(_HandToPtr(parm->p[0].val.ev_handle),
_HandToPtr(parm->p[1].val.ev_handle));
_RetInt(RetValue, 10); // does return control here
_HUnLock(parm->p[0].val.ev_handle);
_HUnLock(parm->p[1].val.ev_handle);
}
FoxInfo myFoxInfo[] = {
{"STRCMP", (FPFI) Example, 2, "C,C"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Vea también
Acceso a la API de Visual FoxPro | Rutinas de depuración | Depuración y control de errores