Отладка приложений


         

это таблица, которую функция stackwalk


FPO-данные — это таблица, которую функция stackwalk использует для вычислений, связанных с обработкой тех функций, которые пропускают нормальную область стека. Мы рассматриваем FPO-данные еще и потому, что ссылки на них иногда встречаются в MSDN и в различных отладчиках. Можно подробнее познакомиться со структурой FPO-данных в файле WINNT.H.
 Листинг 4-8. InitializeStackFrameWithGontext из i386CPUHELP.C
BOOL CPUHELP_DLLINTERFACE _stdcall
InitializeStackFrameWithContext ( STACKFRAME * pStack,
CONTEXT * pCtx)
{
ASSERT ( FALSE == IsBadReadPtr ( pCtx, sizeof ( CONTEXT))); 
ASSERT ( FALSE == IsBadWritePtr ( pStack, sizeof ( STACKFRAME)) 
} ;
if ( ( TRUE == IsBadReadPtr ( pCtx, sizeof ( CONTEXT))) ||
( TRUE == IsBadWritePtr ( pStack, sizeof ( STACKFRAME)))) 
{
return ( FALSE);
 }
pStack->AddrPC.Offset = pCtx->Eip; 
pStack->AddrPC.Mode = AddrModeFlat ;
 pStack->AddrStack.Offset = pCtx->Esp;
 pStack->AddrStack.Mode = AddrModeFlat ;
 pStack->AddrFrame.Offset = pCtx->Ebp;
 pStack->AddrFrame.Mode = AddrModeFlat ;
 return ( TRUE); 
}

Содержание  Назад  Вперед