non sono sicuro se si è in grado di modificare il codice sorgente, ma in tal caso si potrebbe desiderare di provare questo:
def debugexcept(type, value, tb):
if hasattr(sys, 'ps1') or not (sys.stderr.isatty() and sys.stdin.isatty()) or type == SyntaxError:
sys.__excepthook__(type, value, tb)
else:
import traceback, pdb
traceback.print_exception(type, value, tb)
print
pdb.pm()
sys.excepthook = debugexcept
Se si avvia il programma Python da una riga di comando si dovrebbe essere oggetto di dumping nel debugger Python quando muore, supponendo che qualcosa di "cattivo" abbia causato un'eccezione. Immagino che forse stderr/stdout siano stati catturati e tu non stia vedendo qualche eccezione?
cioè ricerca di qualcosa di simile a:
sys.stdout = open('stdout.log', 'w')
sys.stderr = open('stderr.log', 'w')
Se il processo sta morendo senza eccezioni a tutti allora che potrebbe essere più difficile da trovare. Uno (molto difficile) su Windows sarebbe utilizzare qualcosa come windbg da allegare al processo e impostare un punto di interruzione nel CRT in un punto pertinente.
Buona fortuna!
Le cose potrebbero andare peggio; per esempio, l'autore del modulo potrebbe avere un bel giorno xitty al lavoro, quindi hanno chiamato il modulo dopo il fatto. ;) – tzot