Копировать не больше информации об
// Вывести информацию исходного файла и номера строки?
if ( GSTSO_SRCLINE == ( dwOpts & GSTSO_SRCLINE))
{
ZeroMemory ( &g_stLine, sizeof ( IMAGEHLP_LINE));
g_stLine.SizeOfStruct = sizeof ( IMAGEHLP_LINE);
if ( TRUE ==
InternalSymGetLineFromAddr ( (HANDLE)
GetCurrentProcessId (),
g_stFrame.AddrPC.Offset ,
SdwDisp ,
&g_stLine ))
{
iCurr += wsprintf ( g_szBuff + iCurr, _T ( ", "));
// Копировать не больше информации об исходном файле и
// номере строки, чем позволяет память.
dwTemp = Istrlen ( g_stLine.FileName);
if ( dwTerap > (DWORD)( BUFF_SIZE - iCurr
_ ( MAX_PATH +50 ))) {
Istrcpyn ( g_szBuff + iCurr ,
g_stLine.FileName ,
BUFF_SIZE - iCurr - 1 );
// Теперь можно выйти
szRet = g_szBuff;
_leave;
}
else
{
if { dwDisp > 0)
{
iCurr += wsprintf(g_szBuff + iCurr ,
_T("%s, line %04d+%04d byte(s)"),
g_stLine.FileName ,
g_s tLine.LineNumbe r ,
dwDisp ) ;
}
else
{
iCurr += wsprintf ( g_szBuff + iCurr ,
_T ( "%s, line %04d") ,
g_stLine.FileName ,
g_stLine.LineNumber );
}
}
}
}
szRet = g_szBuff;
}
_except ( EXCEPTION_EXECUTE_HANDLER)
{
ASSERT ( !"Crashed in InternalGetStackTraceString");
szRet = NULL;
}
return ( szRet);
}
BOOL _stdcall
GetFirstStackTraceStringVB ( DWORD dwOpts ,
EXCEPTION_POINTERS * pExPtrs,
LPTSTR szBuff ,
UINT uiSize )
{
ASSERT ( FALSE == IsBadWritePtr ( szBuff, uiSize));
if ( TRUE = IsBadWritePtr ( szBuff, uiSize))
{
return ( FALSE);
}
LPCTSTR szRet;
_try
{
szRet = GetNextStackTraceString ( dwOpts, pExPtrs);
if ( NULL == szRet)
{
_leave;
}
Istrcpyn ( szBuff , szRet ,
min ( (UINT)lstrlen ( szRet) + I, uiSize));
}
_except ( EXCEPTION_EXECUTE_HANDLER)
{
szRet = NULL;
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий