GDB crash while stepping into function.

* infrun.c (handle_inferior_event): Refetch the current frame
        after handling what.main_action, in case that pointer became
        dangling.
This commit is contained in:
Joel Brobecker 2010-01-09 04:36:00 +00:00
parent 12c8947461
commit 4b7703adcc
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2010-01-09 Joel Brobecker <brobecker@adacore.com>
GDB crash while stepping into function.
* infrun.c (handle_inferior_event): Refetch the current frame
after handling what.main_action, in case that pointer became
dangling.
2010-01-09 Joel Brobecker <brobecker@adacore.com>
Fix build failure of solaris-hosted cross debuggers.

View File

@ -4066,6 +4066,11 @@ infrun: not switching back to stepped thread, it has vanished\n");
return;
}
/* Re-fetch current thread's frame in case the code above caused
the frame cache to be re-initialized, making our FRAME variable
a dangling pointer. */
frame = get_current_frame ();
/* If stepping through a line, keep going if still within it.
Note that step_range_end is the address of the first instruction