У нас есть большая система Ada / C ++ (использующая Gnatpro 7.3.2), работающая в Windows, которая очень редко дает сбой при нарушении памяти Windows 0xC0000005.Я попытался упростить, создав небольшую программу Ada, которая вызывает библиотеку C ++, и библиотека пытается писать по адресу 0x07.Но в этом случае вместо получения ожидаемого C0000005 подсистема Ada сообщает об ОШИБКЕ ПРОГРАММЫ с сообщением EXCEPTION_ACCESS_VIOLATION и хорошей трассировкой стека.
Чтобы найти эту редкую ошибку, я сначала написал программу на C ++, пишущую вадрес 7, который вызвал C000005, как и ожидалось, но при этом используется среда выполнения MSVC.Моя маленькая программа Ада показывает другое поведение.Можно ли отключить слой времени выполнения Ada, который ловит нарушение памяти?