Здравствуйте, Аноним, Вы писали:
А>Подскажите пожалуйста как из обработчика исключения узнать в каком месте это исключение было сгенерировано ?
Если под местом подразумевается адрес, то можно так
CONTEXT context;
EXCEPTION_RECORD er;
__try
{
...
}
__except (er = *(GetExceptionInformation())->ExceptionRecord,
context = *(GetExceptionInformation())->ContextRecord,
EXCEPTION_EXECUTE_HANDLER)
{
// x86
cout << "Exception Address is: 0x" << hex << (DWORD) er.ExceptionAddress << endl;
cout << "EIP from context is: 0x" << hex << context.Eip << endl;
// x64
cout << "Exception Address is: 0x" << hex << (DWORD64) er.ExceptionAddress << endl;
cout << "RIP from context is: 0x" << hex << context.Rip << endl;
}