Есть ли способ определить, содержится ли определенная часть памяти в одном выделенном блоке C ++? И в режиме релиза к сожалению. И в идеале на Windows и Mac.
У меня здесь действительно проблемная ошибка — она появляется только в режиме релиза, ее очень сложно симулировать, она многопоточная и обычно разрушает стек. Кажется, что это вызвано вызовом memmove, и я предполагаю, что он заменяет огромную часть памяти, и, прежде чем произойдет нарушение доступа, он обычно уже заменяет стек.
Алгоритм чрезвычайно сложен, и это происходит буквально время от времени, не зная, как эффективно имитировать его, поэтому моя единственная идея — внедрить тест в memmove, чтобы убедиться, что аргументы верны. Разумеется, каждая часть должна быть расположена в одном блоке-аллекторе, поэтому мне нужно проверить правильность замены конкретного блока.
Задача ещё не решена.