2011-09-14 12 views
9

Ok, ho ottenuto questo programma multi-threaded C++ che cerco di eseguire il debug in Visual Studio 2008.Come posso interrompere Visual Studio prima che il programma si arresti?

volte (di solito dopo un tempo casuale tra uno e due ore di calcoli), il programma si blocca, esce la modalità di debug dopo scrivere nella finestra di debug:

The thread 'Win32 Thread' (0x1560) has exited with code 3 (0x3). 
The thread 'Win32 Thread' (0x5fc) has exited with code 3 (0x3). 
... 

E così via per tutti i thread coinvolti.

Il codice di uscita AFAIK 3 indica un errore di qualcosa, mi aspetto che VS intercetti l'eccezione e interrompa in modo da poter provare a vedere qual è l'errore e cosa lo ha causato.

Ho provato ad attivare tutte le eccezioni nel menu Debug di Visual Studio, ma non ha cambiato nulla.

C'è un modo per dire a VS che voglio un'interruzione quando si verifica questa uscita anormale?

+0

Ho avuto uno di quelli, e non riuscivo a capirlo in modalità di rilascio. Quando si esegue in modalità Debug, * con il debugger allegato *, si è rivelato essere un semplice e semplice dereferenziamento del puntatore nullo, ma in qualche modo è stato segnalato come eccezione quando il debugger non è stato collegato. –

risposta

11

La mia ipotesi: si sta verificando un errore di asserzione e il CRT non può creare la finestra del messaggio (per qualche motivo). Ciò porta ad una chiamata di uscita (3). Non sono sicuro se questo ucciderà tutti i thread con quel codice di uscita. Forse tutte le tue discussioni falliscono nello stesso modo quando qualcosa va storto.

Provare ad aggiungere una chiamata _CrtSetReportMode all'inizio del programma per forzare i messaggi di errore di asserzione nella finestra di output nel debugger. Quindi, dovresti vedere i dettagli dell'errore di asserzione nella finestra di output di debug prima della serie di messaggi di thread exit.

+0

Sembra che avevi ragione, un'affermazione è stata colpita in una discussione diversa. Finalmente mi sono liberato di questo bug, grazie :) – Louen

Problemi correlati