diff options
author | Tom Tromey <tromey@adacore.com> | 2019-05-31 14:50:23 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2019-10-02 09:53:17 -0600 |
commit | 37f6a7f456a8da051698dcd753cc0b026f92e054 (patch) | |
tree | 2bb33381b3da98477f726ce03998e045bc0a9e3b /gdb/doc | |
parent | fccf9de11fe6757afd3ad2dca4e0ea781b50ae37 (diff) | |
download | gdb-37f6a7f456a8da051698dcd753cc0b026f92e054.zip gdb-37f6a7f456a8da051698dcd753cc0b026f92e054.tar.gz gdb-37f6a7f456a8da051698dcd753cc0b026f92e054.tar.bz2 |
Add $_ada_exception convenience variable
This adds the $_ada_exception convenience variable. It is set by the
Ada exception catchpoints, and holds the address of the exception
currently being thrown. This is useful because it allows more
fine-grained filtering of exceptions than is possible using the
existing "catch" syntax.
This also simplifies Ada catchpoints somewhat; because the catchpoint
must now carry the "kind", it's possible to remove many helper
functions.
gdb/ChangeLog
2019-10-02 Tom Tromey <tromey@adacore.com>
* NEWS: Add $_ada_exception entry.
* ada-lang.c (struct ada_catchpoint): Add constructor.
<m_kind>: New member.
(allocate_location_exception, re_set_exception): Remove
"ex" parameter.
(should_stop_exception): Compute $_ada_exception.
(check_status_exception, print_it_exception)
(print_one_exception, print_mention_exception): Remove
"ex" parameter.
(allocate_location_catch_exception, re_set_catch_exception)
(check_status_exception, print_it_catch_exception)
(print_one_catch_exception, print_mention_catch_exception)
(print_recreate_catch_exception)
(allocate_location_catch_exception_unhandled)
(re_set_catch_exception_unhandled)
(check_status_exception, print_it_catch_exception_unhandled)
(print_one_catch_exception_unhandled)
(print_mention_catch_exception_unhandled)
(print_recreate_catch_exception_unhandled)
(allocate_location_catch_assert, re_set_catch_assert)
(check_status_assert, print_it_catch_assert)
(print_one_catch_assert, print_mention_catch_assert)
(print_recreate_catch_assert)
(allocate_location_catch_handlers, re_set_catch_handlers)
(check_status_handlers, print_it_catch_handlers)
(print_one_catch_handlers, print_mention_catch_handlers)
(print_recreate_catch_handlers): Remove.
(create_ada_exception_catchpoint): Update.
(initialize_ada_catchpoint_ops): Update.
gdb/doc/ChangeLog
2019-10-02 Tom Tromey <tromey@adacore.com>
* gdb.texinfo (Set Catchpoints, Convenience Vars): Document
$_ada_exception.
gdb/testsuite/ChangeLog
2019-10-02 Tom Tromey <tromey@adacore.com>
* gdb.ada/catch_ex_std.exp: Add $_ada_exception test.
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 20 |
2 files changed, 23 insertions, 2 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 0a10fa3..7ab8b1d 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2019-10-02 Tom Tromey <tromey@adacore.com> + + * gdb.texinfo (Set Catchpoints, Convenience Vars): Document + $_ada_exception. + 2019-09-20 Ulrich Weigand <uweigand@de.ibm.com> * doc/gdb.texinfo (Remote Configuration): Remove documentation for diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index f2713c0..78d3828 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -4788,9 +4788,16 @@ called @code{Constraint_Error} is defined in package @code{Pck}, then the command to use to catch such exceptions is @kbd{catch exception Pck.Constraint_Error}. +@vindex $_ada_exception@r{, convenience variable} +The convenience variable @code{$_ada_exception} holds the address of +the exception being thrown. This can be useful when setting a +condition for such a catchpoint. + @item exception unhandled @kindex catch exception unhandled -An exception that was raised but is not handled by the program. +An exception that was raised but is not handled by the program. The +convenience variable @code{$_ada_exception} is set as for @code{catch +exception}. @item handlers @r{[}@var{name}@r{]} @kindex catch handlers @@ -4812,9 +4819,13 @@ user-defined one. For instance, assuming an exception called command to use to catch such exceptions handling is @kbd{catch handlers Pck.Constraint_Error}. +The convenience variable @code{$_ada_exception} is set as for +@code{catch exception}. + @item assert @kindex catch assert -A failed Ada assertion. +A failed Ada assertion. Note that the convenience variable +@code{$_ada_exception} is @emph{not} set by this catchpoint. @item exec @kindex catch exec @@ -11823,6 +11834,11 @@ The program has exited The variable @code{$_exception} is set to the exception object being thrown at an exception-related catchpoint. @xref{Set Catchpoints}. +@item $_ada_exception +The variable @code{$_ada_exception} is set to the address of the +exception being caught or thrown at an Ada exception-related +catchpoint. @xref{Set Catchpoints}. + @item $_probe_argc @itemx $_probe_arg0@dots{}$_probe_arg11 Arguments to a static probe. @xref{Static Probe Points}. |