diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c86d7e4647e..da904f16c2f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2020-07-08 Tom Tromey + + * ada-lang.c (ada_exception_message_1): Use read_memory. + 2020-07-06 Andrew Burgess PR python/22748 diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 98508c168bc..cbcceba838d 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -11894,7 +11894,12 @@ ada_exception_message_1 (void) if (e_msg_len <= 0) return NULL; - return target_read_string (value_address (e_msg_val), INT_MAX); + gdb::unique_xmalloc_ptr e_msg ((char *) xmalloc (e_msg_len + 1)); + read_memory (value_address (e_msg_val), (gdb_byte *) e_msg.get (), + e_msg_len); + e_msg.get ()[e_msg_len] = '\0'; + + return e_msg; } /* Same as ada_exception_message_1, except that all exceptions are diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 8eae1ab782a..6810ef682b0 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-07-08 Tom Tromey + + * gdb.ada/catch_ex/foo.adb: Pass string to raise. + * gdb.ada/catch_ex.exp: Examine catchpoint text. + 2020-07-06 Andrew Burgess PR python/22748 diff --git a/gdb/testsuite/gdb.ada/catch_ex.exp b/gdb/testsuite/gdb.ada/catch_ex.exp index 7bb1c06f544..68914139830 100644 --- a/gdb/testsuite/gdb.ada/catch_ex.exp +++ b/gdb/testsuite/gdb.ada/catch_ex.exp @@ -62,7 +62,7 @@ gdb_test "info break" \ "info break, catch all Ada exceptions" set catchpoint_msg \ - "Catchpoint $any_nb, CONSTRAINT_ERROR (\\\(foo\\.adb:$decimal explicit raise\\\) )?at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb" + "Catchpoint $any_nb, CONSTRAINT_ERROR (\\\(ignore C_E\\\) )?at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb" gdb_test "continue" \ "Continuing\.$eol$catchpoint_msg$eol.*SPOT1" \ "continuing to first exception" diff --git a/gdb/testsuite/gdb.ada/catch_ex/foo.adb b/gdb/testsuite/gdb.ada/catch_ex/foo.adb index bee394fc02f..cdf0286beee 100644 --- a/gdb/testsuite/gdb.ada/catch_ex/foo.adb +++ b/gdb/testsuite/gdb.ada/catch_ex/foo.adb @@ -17,7 +17,7 @@ procedure Foo is begin begin - raise Constraint_Error; -- SPOT1 + raise Constraint_Error with "ignore C_E"; -- SPOT1 exception when others => null;