* infrun.c (adjust_pc_after_break): Do not call get_thread_regcache

if the thread has already exited.
This commit is contained in:
Ulrich Weigand 2008-08-22 14:47:13 +00:00
parent e0bb1c1c26
commit 24a73cce8b
2 changed files with 14 additions and 7 deletions

View file

@ -1,3 +1,8 @@
2008-08-22 Ulrich Weigand <uweigand@de.ibm.com>
* infrun.c (adjust_pc_after_break): Do not call get_thread_regcache
if the thread has already exited.
2008-08-22 Pedro Alves <pedro@codesourcery.com>
* infrun.c (proceed): Move back setting previous_inferior_ptid

View file

@ -1750,15 +1750,10 @@ context_switch_to (ptid_t ptid)
static void
adjust_pc_after_break (struct execution_control_state *ecs)
{
struct regcache *regcache = get_thread_regcache (ecs->ptid);
struct gdbarch *gdbarch = get_regcache_arch (regcache);
struct regcache *regcache;
struct gdbarch *gdbarch;
CORE_ADDR breakpoint_pc;
/* If this target does not decrement the PC after breakpoints, then
we have nothing to do. */
if (gdbarch_decr_pc_after_break (gdbarch) == 0)
return;
/* If we've hit a breakpoint, we'll normally be stopped with SIGTRAP. If
we aren't, just return.
@ -1786,6 +1781,13 @@ adjust_pc_after_break (struct execution_control_state *ecs)
if (ecs->ws.value.sig != TARGET_SIGNAL_TRAP)
return;
/* If this target does not decrement the PC after breakpoints, then
we have nothing to do. */
regcache = get_thread_regcache (ecs->ptid);
gdbarch = get_regcache_arch (regcache);
if (gdbarch_decr_pc_after_break (gdbarch) == 0)
return;
/* Find the location where (if we've hit a breakpoint) the
breakpoint would be. */
breakpoint_pc = regcache_read_pc (regcache)