У меня есть приложение .NET, которое использует библиотеку сжатия C ++ с открытым исходным кодом для сжатия изображений. Мы обращаемся к библиотеке C ++ через управляемый C ++. Я вижу повреждение кучи во время сжатия. Вызов _CrtIsValidHeapPointer находит ошибку при вызове free () при очистке после сжатия.
Мой вопрос: существуют ли такие инструменты, как Purify, чтобы помочь диагностировать эту проблему, и что является причиной повреждения кучи при работе в сочетании управляемого и неуправляемого кода? У меня есть исключение, пойманное в отладчике, но было бы неплохо иметь другие инструменты, которые помогут найти решение проблемы.