Share via


_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