Freigeben über


_BreakPoint( ), API-Bibliotheksroutine

_BreakPoint( ) ist ein Makro, das die Haltepunktinstruktion für den Debugger INT 3 generiert. Das kann bei der Fehlersuche in externen Routinen nützlich sein.

void _BreakPoint(void any)
void any;                     /* Pointer. */

Hinweise

Wenn ein _BreakPoint( )-Aufruf auftritt, wird die Steuerung auf den Debugger übertragen. Die meisten Debugger geben die Steuerung an die Programmzeile zurück, die die INT3-Instruktion enthält. Sie müssen den Instruktionszeiger (IP) nach dieser Instruktion manuell um eins erhöhen. Zu diesem Zeitpunkt können Sie mit dem Debugger zusätzliche Haltepunkte setzen. Entfernen Sie vor dem Beenden der externen Routine immer alle Haltepunkte. Weitere Informationen über das Debuggen finden Sie unter Zugreifen auf die Visual FoxPro-API.

Beispiel

Im folgenden Beispiel wird das _BreakPoint( )-Makro verwendet, um eine INT 3-Instruktion einzufügen, die von Debuggern als Haltepunkt erkannt wird.

Visual FoxPro-Code

SET LIBRARY TO BPOINT  

C-Code

#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
};

Siehe auch

Zugreifen auf die Visual FoxPro-API | Debug-Routinen | Debuggen und Fehlerbehandlung