* frame.c (get_prev_frame_1): Check PC_REGNUM before using it.
This commit is contained in:
parent
dc4503c681
commit
d57df5e4d8
2 changed files with 14 additions and 3 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2007-01-11 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* frame.c (get_prev_frame_1): Check PC_REGNUM before using it.
|
||||||
|
|
||||||
2007-01-10 Jim Blandy <jimb@codesourcery.com>
|
2007-01-10 Jim Blandy <jimb@codesourcery.com>
|
||||||
|
|
||||||
* MAINTAINERS (Global Maintainers): Ulrich Weigand has accepted
|
* MAINTAINERS (Global Maintainers): Ulrich Weigand has accepted
|
||||||
|
|
13
gdb/frame.c
13
gdb/frame.c
|
@ -1221,10 +1221,17 @@ get_prev_frame_1 (struct frame_info *this_frame)
|
||||||
have different frame IDs, the new frame will be bogus; two
|
have different frame IDs, the new frame will be bogus; two
|
||||||
functions can't share a register save slot for the PC. This can
|
functions can't share a register save slot for the PC. This can
|
||||||
happen when the prologue analyzer finds a stack adjustment, but
|
happen when the prologue analyzer finds a stack adjustment, but
|
||||||
no PC save. This check does assume that the "PC register" is
|
no PC save.
|
||||||
roughly a traditional PC, even if the gdbarch_unwind_pc method
|
|
||||||
frobs it. */
|
This check does assume that the "PC register" is roughly a
|
||||||
|
traditional PC, even if the gdbarch_unwind_pc method adjusts
|
||||||
|
it (we do not rely on the value, only on the unwound PC being
|
||||||
|
dependent on this value). A potential improvement would be
|
||||||
|
to have the frame prev_pc method and the gdbarch unwind_pc
|
||||||
|
method set the same lval and location information as
|
||||||
|
frame_register_unwind. */
|
||||||
if (this_frame->level > 0
|
if (this_frame->level > 0
|
||||||
|
&& PC_REGNUM >= 0
|
||||||
&& get_frame_type (this_frame) == NORMAL_FRAME
|
&& get_frame_type (this_frame) == NORMAL_FRAME
|
||||||
&& get_frame_type (this_frame->next) == NORMAL_FRAME)
|
&& get_frame_type (this_frame->next) == NORMAL_FRAME)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue