La mia applicazione è un misto di codice C# e C++. Modulo di avvio scritto in carichi C# durante la fase di inizializzazione Modulo C++ tramite meccanismo COM (Component Object Model). Tutto funzionava correttamente fino a quando ho deciso di aggiungere alla parte C# un servizio wcf. Tutte le chiamate di servizio wcf vengono instradate al codice C++ tramite COM. Dopo aver aggiunto alcuni nuovi metodi ho notato perdite di memoria nella finestra di output. Così ho aggiunto breakpoint al descrittore della classe C++ come si può vedere dallo screenshot. Da questo momento in poi cose strane hanno iniziato ad accadere. Dopo che il programma raggiunge il punto di interruzione, si arresta in modo imprevisto. La prima cosa strana è che quando eseguo il programma senza il punto di interruzione impostato, termina con grazia. La seconda cosa strana è che il modo in cui il programma si blocca è come se fosse eseguito senza debugger. Dopo aver fatto clic sul pulsante "Apri nel debugger" (o qualcosa di simile a questo) ricevo un messaggio di errore: "Il programma è già aperto nel debugger". Nessun messaggio nella finestra di output che potrebbe indirizzarmi all'origine dell'errore, nessun codice sospetto. Quando si aggiunge una finestra di messaggio al distruttore che inizia, viene visualizzata per una frazione di secondo e quindi l'intera applicazione si chiude (senza aggiungere all'utente l'opportunità di leggere cosa è visualizzato nella finestra del messaggio). Alla disperata ricerca di qualche indizio.Arresto anomalo strano durante il debug del distruttore di oggetti COM
P.S. I problemi si verificano solo quando il metodo wcf è stato chiamato almeno una volta. Non dipende se il flusso del programma in questa particolare chiamata è stato indirizzato al livello C++ o meno.
Provare a utilizzare WinDbg anziché il debugger VS per ottenere maggiori informazioni sull'arresto – SpaceghostAli