Как проверить, была ли выделена часть памяти с помощью C ++ allocator?

Есть ли способ определить, содержится ли определенная часть памяти в одном выделенном блоке C ++? И в режиме релиза к сожалению. И в идеале на Windows и Mac.

У меня здесь действительно проблемная ошибка — она ​​появляется только в режиме релиза, ее очень сложно симулировать, она многопоточная и обычно разрушает стек. Кажется, что это вызвано вызовом memmove, и я предполагаю, что он заменяет огромную часть памяти, и, прежде чем произойдет нарушение доступа, он обычно уже заменяет стек.

Алгоритм чрезвычайно сложен, и это происходит буквально время от времени, не зная, как эффективно имитировать его, поэтому моя единственная идея — внедрить тест в memmove, чтобы убедиться, что аргументы верны. Разумеется, каждая часть должна быть расположена в одном блоке-аллекторе, поэтому мне нужно проверить правильность замены конкретного блока.

0

Решение

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

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


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