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