Прокомментируйте плиз.
long __stdcall filter(_EXCEPTION_POINTERS* ExceptionInfo)
{
dump(0, MiniDumpWithDataSegs);
return EXCEPTION_CONTINUE_SEARCH;
}
int _tmain(int argc, _TCHAR* argv[])
{
SetUnhandledExceptionFilter(filter);
crash();
}
//1
void crash()
{
std::vector<char> tmp(10000000000);
}
//2
void crash()
{
int tmp = 0;
tmp = 10 / tmp;
}
//3
void crash()
{
std::vector<char> tmp;
tmp[10] = 0;
}
В 1-ом и 2-ом случае вызывается мой фильтр, который создает дамп. В третьем случае дамп не создается. Причины? Какая разница между исключением в 1-ом случае и в 3-ем? Как бы сделать так, что бы управление моему фильтру передавалось всегда?