From de0a02497e91b8f887be102a876f388dcc9f58e6 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Mon, 8 Feb 2010 19:50:04 +0000 Subject: * infrun.c (handle_inferior_event): Do not look up regcache for exited processes. --- gdb/ChangeLog | 5 +++++ gdb/infrun.c | 20 +++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) (limited to 'gdb') diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b5e75e0..f06ec83 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2010-02-08 Ulrich Weigand + + * infrun.c (handle_inferior_event): Do not look up regcache + for exited processes. + Mon Feb 8 13:17:10 2010 Chris Moller PR gdb/10728 diff --git a/gdb/infrun.c b/gdb/infrun.c index 8307986..a715596 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -2664,7 +2664,6 @@ handle_inferior_event (struct execution_control_state *ecs) { struct frame_info *frame; struct gdbarch *gdbarch; - struct regcache *regcache; int sw_single_step_trap_p = 0; int stopped_by_watchpoint; int stepped_after_stopped_by_watchpoint = 0; @@ -2735,18 +2734,21 @@ handle_inferior_event (struct execution_control_state *ecs) non-executable stack. This happens for call dummy breakpoints for architectures like SPARC that place call dummies on the stack. */ - regcache = get_thread_regcache (ecs->ptid); if (ecs->ws.kind == TARGET_WAITKIND_STOPPED && (ecs->ws.value.sig == TARGET_SIGNAL_ILL || ecs->ws.value.sig == TARGET_SIGNAL_SEGV - || ecs->ws.value.sig == TARGET_SIGNAL_EMT) - && breakpoint_inserted_here_p (get_regcache_aspace (regcache), - regcache_read_pc (regcache))) + || ecs->ws.value.sig == TARGET_SIGNAL_EMT)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: Treating signal as SIGTRAP\n"); - ecs->ws.value.sig = TARGET_SIGNAL_TRAP; + struct regcache *regcache = get_thread_regcache (ecs->ptid); + + if (breakpoint_inserted_here_p (get_regcache_aspace (regcache), + regcache_read_pc (regcache))) + { + if (debug_infrun) + fprintf_unfiltered (gdb_stdlog, + "infrun: Treating signal as SIGTRAP\n"); + ecs->ws.value.sig = TARGET_SIGNAL_TRAP; + } } /* Mark the non-executing threads accordingly. In all-stop, all -- cgit v1.1