* breakpoint.c (watchpoint_check): Double-check the found frame.

This commit is contained in:
Daniel Jacobowitz 2006-12-18 22:10:13 +00:00
parent e565971c4e
commit 69fbadd53d
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2006-12-18 Daniel Jacobowitz <dan@codesourcery.com>
* breakpoint.c (watchpoint_check): Double-check the found frame.
2006-12-17 Nick Hudson <skrll@netbsd.org>
Mark Kettenis <kettenis@gnu.org>

View File

@ -2564,6 +2564,13 @@ watchpoint_check (void *p)
reinit_frame_cache ();
fr = frame_find_by_id (b->watchpoint_frame);
within_current_scope = (fr != NULL);
/* If we've gotten confused in the unwinder, we might have
returned a frame that can't describe this variable. */
if (within_current_scope
&& block_function (b->exp_valid_block) != get_frame_function (fr))
within_current_scope = 0;
/* in_function_epilogue_p() returns a non-zero value if we're still
in the function but the stack frame has already been invalidated.
Since we can't rely on the values of local variables after the