При каких обстоятельствах EXCEPTION_RECORD ссылается на другое вложенное исключение?

документация за _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 там?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]