У меня есть функция isptrReadable , которая использует SEH для проверки неверных указателей.
Код: Выделить всё
bool DXHR::IsPtrReadable(void* pointer) {
__try {
volatile char test = *(char*)pointer;
return true;
}
__except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
return false;
}
}
Я ожидаю, что isptrReadable в конечном итоге встретить nullptr и недопустимые указатели. Вот почему у меня есть это внутри блока SEH. Проблема в том, что при отладке мое приложение MSVC останавливает выполнение каждый раз, когда это происходит. Что является неприятностью, потому что меня не интересует, когда это происходит в этой конкретной функции. Но я бы хотел, чтобы он все еще остановился и показал мне, какую строку нарушение доступа происходит на вне этой функции.
Как я могу это достичь?
Подробнее здесь:
https://stackoverflow.com/questions/795 ... on-for-seh