Re: `sys.exit` from Python no longer exits the GDB process
Paul Koning via Gdb <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
> On Jun 20, 2024, at 3:25 PM, Gulshan Singh via Gdb <[email protected]> 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