Dal tuo commento,
In a application with say ~10k source files, finding this place is the problem
In un'applicazione di queste dimensioni, dovrebbero esserci alcune opzioni di registrazione / tracciamento incorporate nell'applicazione. Questo è quasi un requisito per applicazioni di queste dimensioni, incluse le GUI.
Tra le opzioni di registrazione / traccia, una delle opzioni dovrebbe essere quella di stampare la posizione, il nome della classe o il nome della funzione del codice che viene eseguito, anche se il codice in esecuzione pensa che tutto vada normalmente (senza eccezione). A seconda di come viene effettivamente utilizzata la registrazione nell'intera applicazione, potrebbe essere necessario aumentare il livello di registrazione su DEBUG o VERBOSE.
Il codice che non rileva una condizione anomala quando uno è realmente accaduto è di per sé un difetto del software. Inoltre, a volte l'attuale comportamento del software è esattamente come previsto dal programmatore, tranne che non concorda con i requisiti o le specifiche dell'utente. In entrambi i casi, vorrai vedere la traccia di esecuzione, non solo il rapporto delle eccezioni.
Abilitarlo e vedere dove colpisce l'esecuzione mentre esegui i passaggi di riproduzione del bug. Utilizza i log come punto di partenza per ulteriori indagini.
Se l'applicazione non implementa una registrazione / traccia adeguata per consentirvi di indagare sul bug, portate questo problema al responsabile del progetto. Se l'applicazione non ha alcuna registrazione / traccia, suppongo che il problema sia più grande della base di codice stessa e richiederà più persone per risolverlo.