_BreakPoint( ) представляет собой макрокоманду, генерирующую инструкцию точки останова для отладчика - INT 3, и может пригодиться при отладке внешних программ.
void _BreakPoint(void any) void any; /* Указатель. */ |
Замечания
Когда происходит вызов _BreakPoint( ), управление передается отладчику. Большинство отладчиков возвращают управление в строку программы, содержащую инструкцию INT3, и для ее обхода вам приходится вручную увеличивать значение указателя инструкций (IP). В это время вы можете с помощью отладчика задать дополнительные точки останова. Перед выходом из внешней программы всегда удаляйте все точки останова. Подробнее о процессе отладки смотрите Доступ к Visual FoxPro API.
Пример
В следующем примере макрокоманда _BreakPoint( ) используется для вставки инструкции INT 3, распознаваемой отладчиками в качестве точки останова.
Код Visual FoxPro
![]() | |
---|---|
SET LIBRARY TO BPOINT |
Код 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 }; |
Смотрите также
Справочное руководство
Отладка и Обработка ошибокКонцепции
Процедуры библиотеки API от A до ZПрочие ресурсы
Доступ к Visual FoxPro APIОтладка процедур библиотеки API
Процедуры библиотеки API по категориям

c Microsoft Corporation. All rights reserved. Microsoft is not reponsible for the contents of the translated help topics.