документация за _EXCEPTION_RECORD
говорит об одном из его членов, struct _EXCEPTION_RECORD *ExceptionRecord
Указатель на связанную структуру EXCEPTION_RECORD. Записи об исключениях могут быть объединены в цепочку для предоставления дополнительной информации при возникновении вложенных исключений.
Однако я не смог спровоцировать такую ситуацию с вложенными структурированными исключениями. Вот что я пробовал до сих пор:
#include <iostream>
#include <windows.h>
void Handle0(LPEXCEPTION_POINTERS pex) {
std::cout << "chain0 = " << pex->ExceptionRecord->ExceptionRecord << std::endl;
}
void Handle1(LPEXCEPTION_POINTERS pex) {
std::cout << "chain1 = " << pex->ExceptionRecord->ExceptionRecord << std::endl;
__try {
throw 3;
} __except( Handle0(GetExceptionInformation()), EXCEPTION_EXECUTE_HANDLER ) {}
}
int main() {
__try {
throw 3;
} __except( Handle1(GetExceptionInformation()), EXCEPTION_EXECUTE_HANDLER ) {}
return 0;
}
pex->ExceptionRecord->ExceptionRecord
всегда nullptr
, При каких обстоятельствах я получаю ссылку на вложенный _EXCEPTION_RECORD
там?
Задача ещё не решена.
Других решений пока нет …