- Fail gracefully if the _Unwind_DebugHook arg. is optimized out (Tom

Tromey).
This commit is contained in:
Jan Kratochvil 2010-04-27 20:02:55 +00:00
parent 66c2179a64
commit 86630f55e7
2 changed files with 54 additions and 1 deletions

View File

@ -0,0 +1,46 @@
commit 802214c97d1661ad337aad0d011dded44f0b5ddd
Author: Tom Tromey <tromey@redhat.com>
Date: Mon Apr 26 15:15:55 2010 -0600
Fail gracefully if the _Unwind_DebugHook argument is optimized out
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 2eea550..9a5b534 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -4925,20 +4925,24 @@ insert_exception_resume_breakpoint (struct thread_info *tp,
vsym = lookup_symbol (SYMBOL_LINKAGE_NAME (sym), b, VAR_DOMAIN, NULL);
value = read_var_value (vsym, frame);
- handler = value_as_address (value);
+ /* If the value was optimized out, revert to the old behavior. */
+ if (! value_optimized_out (value))
+ {
+ handler = value_as_address (value);
- /* We're going to replace the current step-resume breakpoint
- with an exception-resume breakpoint. */
- delete_step_resume_breakpoint (tp);
+ /* We're going to replace the current step-resume breakpoint
+ with an exception-resume breakpoint. */
+ delete_step_resume_breakpoint (tp);
- if (debug_infrun)
- fprintf_unfiltered (gdb_stdlog,
- "infrun: exception resume at %lx\n",
- (unsigned long) handler);
+ if (debug_infrun)
+ fprintf_unfiltered (gdb_stdlog,
+ "infrun: exception resume at %lx\n",
+ (unsigned long) handler);
- bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame),
- handler, bp_exception_resume);
- inferior_thread ()->step_resume_breakpoint = bp;
+ bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame),
+ handler, bp_exception_resume);
+ inferior_thread ()->step_resume_breakpoint = bp;
+ }
}
}

View File

@ -36,7 +36,7 @@ Version: 7.1
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 16%{?_with_upstream:.upstream}%{dist}
Release: 17%{?_with_upstream:.upstream}%{dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
Group: Development/Debuggers
@ -465,6 +465,9 @@ Patch453: gdb-bz570635-prettyprint-doc2.patch
# Fix crash when using GNU IFUNC call from breakpoint condition.
Patch454: gdb-bz539590-gnu-ifunc-fix-cond.patch
# Fail gracefully if the _Unwind_DebugHook arg. is optimized out (Tom Tromey).
Patch456: gdb-unwind-debughook-safe-fail.patch
BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa}
Requires: readline%{?_isa}
BuildRequires: readline-devel%{?_isa}
@ -736,6 +739,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch453 -p1
%patch454 -p1
%patch455 -p1
%patch456 -p1
%patch415 -p1
%patch393 -p1
@ -1068,6 +1072,9 @@ fi
%endif
%changelog
* Tue Apr 27 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.1-17.fc13
- Fail gracefully if the _Unwind_DebugHook arg. is optimized out (Tom Tromey).
* Tue Apr 27 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.1-16.fc13
- Temporarily workaround the crash of BZ 575292 as there was now BZ 585445.