]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Rationalize "fatal" error handling outside of gdbserver
authorGary Benson <gbenson@redhat.com>
Wed, 23 Jul 2014 13:51:26 +0000 (14:51 +0100)
committerGary Benson <gbenson@redhat.com>
Thu, 24 Jul 2014 08:55:50 +0000 (09:55 +0100)
commit2c51604d3adbcc77a25d78ce900f5be4597c2504
tree9040f7940bb0e9a8451115c45bb7e185a4a85b5a
parent342119630e4612856017d03f2892f5a693d85d8e
Rationalize "fatal" error handling outside of gdbserver

GDB and gdbserver have functions named "fatal" that are used in
completely different ways.  In gdbserver "fatal" is used to handle
critical errors: it differs from "error" in that "fatal" causes
gdbserver to exit whereas "error" does not.  In GDB "fatal" is used
to abort the current operation and return to the command level.
This is implemented by throwing a non-error "RETURN_QUIT" exception.

This commit removes GDB's "fatal" and "vfatal" functions entirely.
The exception-throwing function "throw_vfatal" is renamed as
"throw_vquit", and a new convenience function "throw_quit" is added.
The small number of calls to "fatal" are replaced with calls to
"throw_quit", making what is happening more obvious.

This commit also modifies GDB's "throw_error" to call "throw_verror"
rather than calling "throw_it" directly.  This change means the
assignment of RETURN_ERROR as the exception type now happens in
precisely one place in GDB rather than two.

gdb/
2014-07-24  Gary Benson  <gbenson@redhat.com>

* exceptions.h (throw_vfatal): Renamed to...
(throw_vquit): New declaration.
(throw_quit): Likewise.
* exceptions.c (throw_vfatal): Renamed to...
(throw_vquit): New function.
(throw_quit): Likewise.
(throw_error): Call throw_verror rather than throw_it.
* utils.h (vfatal): Removed.
(fatal): Likewise.
* utils.c (vfatal): Removed.
(fatal): Likewise.
(internal_verror): Replaced call to fatal with call to throw_quit.
(quit): Replaced calls to fatal with calls to throw_quit.
gdb/ChangeLog
gdb/exceptions.c
gdb/exceptions.h
gdb/utils.c
gdb/utils.h