+2011-12-11 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (ada_has_this_exception_support): Raise an error
+ if we could find the Ada exception hook in the Ada runtime,
+ but no debugging info for that hook.
+
2011-12-11 Joel Brobecker <brobecker@adacore.com>
* ada-lang.c (ada_has_this_exception_support): New function,
sym = standard_lookup (einfo->catch_exception_sym, NULL, VAR_DOMAIN);
if (sym == NULL)
- return 0;
+ {
+ /* Perhaps we did not find our symbol because the Ada runtime was
+ compiled without debugging info, or simply stripped of it.
+ It happens on some GNU/Linux distributions for instance, where
+ users have to install a separate debug package in order to get
+ the runtime's debugging info. In that situation, let the user
+ know why we cannot insert an Ada exception catchpoint.
+
+ Note: Just for the purpose of inserting our Ada exception
+ catchpoint, we could rely purely on the associated minimal symbol.
+ But we would be operating in degraded mode anyway, since we are
+ still lacking the debugging info needed later on to extract
+ the name of the exception being raised (this name is printed in
+ the catchpoint message, and is also used when trying to catch
+ a specific exception). We do not handle this case for now. */
+ if (lookup_minimal_symbol (einfo->catch_exception_sym, NULL, NULL))
+ error (_("Your Ada runtime appears to be missing some debugging "
+ "information.\nCannot insert Ada exception catchpoint "
+ "in this configuration."));
+
+ return 0;
+ }
/* Make sure that the symbol we found corresponds to a function. */
+2011-12-11 Joel Brobecker <brobecker@adacore.com>
+
+ * gdb.ada/catch_ex.exp, gdb.ada/mi_catch_ex.exp: Adjust
+ expected output for unsupported case.
+
2011-12-10 Jan Kratochvil <jan.kratochvil@redhat.com>
PR testsuite/12649
-re "Catchpoint $any_nb: all Ada exceptions$eol$gdb_prompt $" {
pass $msg
}
- -re "Cannot (insert catchpoints|break on __gnat_raise_nodefer_with_msg) in this configuration\.$eol$gdb_prompt $" {
+ -re "Your Ada runtime appears to be missing some debugging information.*$eol$gdb_prompt $" {
# If the runtime was not built with enough debug information,
# or if it was stripped, we can not test exception
# catchpoints.
-re "Catchpoint $any_nb: all Ada exceptions$eol$gdb_prompt $" {
pass $msg
}
- -re "Cannot (insert catchpoints|break on __gnat_raise_nodefer_with_msg) in this configuration\.\[\r\n\]+$gdb_prompt $" {
+ -re "Your Ada runtime appears to be missing some debugging information.*\[\r\n\]+$gdb_prompt $" {
# If the runtime was not built with enough debug information,
# or if it was stripped, we can not test exception
# catchpoints.