`sys.exit` from Python no longer exits the GDB process

Paul Koning paulkoning@comcast.net
Thu Jun 20 19:37:00 GMT 2024



> On Jun 20, 2024, at 3:25 PM, Gulshan Singh via Gdb <gdb@sourceware.org> wrote:
> 
> I'm using GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1)
> 15.0.50.20240403-git on Ubuntu 24.04, and I'm observing different
> behavior with `sys.exit` in Python then when I was using GNU gdb
> (Ubuntu 12.1-0ubuntu1~22.04.2) 12.1 on Ubuntu 22.04.
> 
> In GDB 12.1, `sys.exit(1)` in Python would exit the GDB process with
> an exit code of 1. In GDB 15.0, I'm seeing that there's an exception
> message instead, and GDB does not exit:
> ```
> Python Exception <class 'SystemExit'>: 1
> Error occurred in Python: 1
> ```
> 
> Is this a bug or intentional behavior? I work on an open source Python
> GDB plugin that has some unit tests that get run inside GDB. When an
> exception occurs, it's caught and we exit with `sys.exit` so we can
> check the return code from our test running scripts. But with the
> latest GDB this no longer happens, eventually we run the `quit`
> command, and the exit code is zero. If this is intended behavior, is
> there any alternative we can use to quit GDB with a non-zero exit code
> from Python?

If all else fails, os._exit(1) should work, but I too wonder if this change is intentional, and if so whether there is a way to control its behavior.

	paul



More information about the Gdb mailing list