Restarting application, keep PyCharm attached

Hi all,

I've created a long-running application that has a memory leak in it. Rather than spend time on finding & fixing a complex bug in an even more complex program, I've written a bit of code to restart the application in case a memory error occurs:

Rebooting code
def reboot(self):
    '''Launches another instance of RAGE, then quits this application.'''

    new_rage = subprocess.Popen([sys.executable] + sys.argv,
  cwd=run_settings.RAGE_HOME,
  start_new_session=True)

    try:
        # Give the new process time to start before we close.
        # If we quit too quickly the new process won't start either.
        new_rage.wait(timeout=2)
        self.log.error('Unable to start a new RAGE instance. Just quitting.')
    except subprocess.TimeoutExpired:
        # This is expected.
        pass

    self.quit()

prettyPrint();

This works just fine, except that PyCharm (correctly) assumes the program has stopped. It then no longer logs the output of the new program instance, so that program's stdout/err are nowhere to be seen.

Is there a way in which I can close the current process and start a new one, while keeping PyCharm attached to the new process?

Thanks in advance for any help,
Sybren

Please sign in to leave a comment.