Recentemente ho iniziato a lavorare su un progetto esistente scritto in C ++ Builder. L'applicazione consiste in un MainModule che carica LOT di moduli (DLL). Il MainModule stesso è una DLL (c'è un piccolo caricatore (.exe) che avvia il MainModule).
Il MainModule non dovrebbe bloccarsi se compare un problema in uno dei moduli caricati (DLL). Quindi, è IMPERATIVO che le eccezioni non lascino il / i modulo / i. Pertanto, in ogni DLL esiste una prova / cattura globale che intercetta tutte le eccezioni all'interno.
Per rendere il codice più compatto, vengono utilizzate eccezioni OVUNQUE (gestione delle eccezioni strutturate) per
* controllo del flusso
* segnalazione di cose
* registrazione degli errori (quando accade qualcosa di sbagliato, il gestore delle eccezioni invierà un messaggio alla console).
Il debug viene eseguito in base ai messaggi mostrati nella console e anche le linee printf sono inserite nel codice per vedere se il programma raggiunge o meno un determinato punto di una funzione.
Mi chiedo, come posso eseguire il debug di queste DLL?
Il problema è che quando una violazione di accesso si verifica in uno di questi plugin / DLL, il try / catch globale cattura l'eccezione. Non arriverà mai all'applicazione / debugger principale.
Nota: il codice è revisionato. Pertanto, è anche IMPERATIVO fare meno modifiche possibili al codice esistente!