Я не уверен, что вы можете изменить исходный код, но если это так, вы можете попробовать это:
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
Если вы запускаете вашу программу на Python из командной строки, вы должны быть сброшены в отладчик Python, когда он умирает, предполагая, что произошло что-то «плохое», что вызвало исключение. Я предполагаю, что возможно stderr / stdout были захвачены, и вы не видите какого-то исключения?
т.е. искать что-то вроде:
sys.stdout = open('stdout.log', 'w')
sys.stderr = open('stderr.log', 'w')
Если процесс умирает без каких-либо исключений, то это может быть труднее найти. Один (очень сложный способ) для окон - использовать что-то вроде windbg для присоединения к процессу и установить точку останова в CRT в каком-то соответствующем месте.
Удачи!