_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