Ich habe eine .NET-Anwendung, die eine Open-Source-C++ - Komprimierungsbibliothek zum Komprimieren von Bildern verwendet. Wir greifen auf die C++ - Bibliothek über verwaltetes C++ zu. Ich sehe Heap-Korruption während der Komprimierung. Ein Aufruf von _CrtIsValidHeapPointer findet einen Fehler bei einem Aufruf von free() beim Bereinigen nach der Komprimierung.Tools zum Auffinden von Speicherbeschädigung in verwaltetem C++ - Code?
Meine Frage ist, gibt es Tools wie Purify, um dieses Problem zu diagnostizieren und was verursacht die Heap-Korruption bei der Arbeit in einer Kombination aus verwaltetem und nicht verwaltetem Code? Ich habe die Ausnahme im Debugger gefangen, aber es wäre schön, andere Tools zu haben, um die Lösung des Problems zu finden.
Bei der letzten Verwendung von Purify, wenn Sie verwalteten Code in Ihrer Anwendung verwenden, versucht es nicht einmal, nicht verwalteten Speicher nachzuverfolgen und zeigt Ihnen nur die Größe des verwalteten Heapspeichers und wenn GCs auftreten. In einer völlig unmanaged App ist Purify ein absoluter Lebensretter! –