Ho un problema di tipo "Schroedinger's Cat" qui - il mio programma (in realtà la suite di test per il mio programma, ma comunque un programma) si arresta in modo anomalo, ma solo quando viene creato in modalità di rilascio e solo quando viene avviato dalla riga di comando . Attraverso il debug di caveman (cioè, messaggi di printf () dappertutto), ho determinato il metodo di test in cui il codice si blocca, anche se sfortunatamente il crash effettivo sembra accadere in qualche distruttore, poiché gli ultimi messaggi di traccia che vedo sono in altri distruttori che vengono eseguiti in modo pulito.
Quando tento di eseguire questo programma all'interno di Visual Studio, non si blocca. Lo stesso vale per l'avvio da WinDbg.exe. Il crash si verifica solo quando si avvia dalla riga di comando. Questo sta accadendo in Windows Vista, btw, e sfortunatamente non ho accesso a una macchina XP in questo momento per testare.
Sarebbe davvero bello se potessi fare in modo che Windows stampi una traccia dello stack, o qualcosa di diverso dalla semplice chiusura del programma come se fosse uscito in modo pulito. Qualcuno ha qualche consiglio su come ottenere alcune informazioni più significative qui e, si spera, correggere questo bug?
Modifica: il problema è stato effettivamente causato da un array fuori limite, che descriverò di più in questo post . Grazie a tutti per il vostro aiuto nella ricerca di questo problema!