Sto eseguendo il debug di un'applicazione C++ multi-thread (nativa) in Visual Studio 2008. In occasioni apparentemente casuali, ricevo un errore "Windows ha attivato un punto di interruzione ..." con una nota che potrebbe essere dovuta a una corruzione nel mucchio. Questi errori non arresteranno sempre immediatamente l'applicazione, anche se è probabile che si verifichi un brusco incidente.Come eseguire il debug degli errori di danneggiamento dell'heap?
Il grosso problema con questi errori è che vengono visualizzati solo dopo che il danneggiamento è effettivamente avvenuto, il che rende molto difficile il monitoraggio e il debug, specialmente su un'applicazione multithread.
Che tipo di cose possono causare questi errori?
Come si esegue il debug?
Suggerimenti, strumenti, metodi, chiarimenti ... sono i benvenuti.
Una piccola cosa da notare su Application Verifier: è necessario registrare i simboli di Application Verifier davanti ai simboli del server simbolo Microsoft nel percorso di ricerca dei simboli, se lo si usa ... Mi sono preso un po 'di ricerche per capire perché! Avrf wasn' trovare i simboli necessari. – leander
Application Verifier è stato un grande aiuto e, combinato con alcune ipotesi, sono stato in grado di risolvere il problema! Grazie mille, e anche a tutti gli altri, per aver raccolto punti utili. –
Application Verifier deve essere utilizzato con WinDbg o dovrebbe funzionare con il debugger di Visual Studio? Ho cercato di usarlo, ma non genera errori o apparentemente fare nulla quando eseguo il debug in VS2012. –