* [commit] Fix info frame's saved registers output
@ 2004-10-29 14:03 Andrew Cagney
2004-10-29 14:35 ` Mark Kettenis
2004-10-30 23:06 ` Eli Zaretskii
0 siblings, 2 replies; 4+ messages in thread
From: Andrew Cagney @ 2004-10-29 14:03 UTC (permalink / raw)
To: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 273 bytes --]
Hello,
Folloing up from my earlier e-mail, this restores the original behavior
of the "info frame" saved registers output. It will now consistently
display the registers saved by the selected frame, and the output won't
change as the stack changes.
Committed,
Andrew
[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 8613 bytes --]
2004-10-27 Andrew Cagney <cagney@gnu.org>
* trad-frame.c (trad_frame_get_prev_register): Use
frame_unwind_register instead of frame_register_unwind, do not
recurse the register's location.
* xstormy16-tdep.c (xstormy16_frame_prev_register):
* sparc-tdep.c (sparc32_frame_prev_register): Ditto.
* sparc64-tdep.c (sparc64_frame_prev_register): Ditto.
* sh-tdep.c (sh_frame_prev_register): Ditto.
* m68k-tdep.c (m68k_frame_prev_register): Ditto.
* i386-tdep.c (i386_frame_prev_register): Ditto.
* dwarf2-frame.c (dwarf2_frame_prev_register): Ditto.
* amd64-tdep.c (amd64_frame_prev_register): Ditto.
Index: amd64-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/amd64-tdep.c,v
retrieving revision 1.15
diff -p -u -r1.15 amd64-tdep.c
--- amd64-tdep.c 7 Jun 2004 02:02:45 -0000 1.15
+++ amd64-tdep.c 29 Oct 2004 13:33:05 -0000
@@ -898,8 +898,12 @@ amd64_frame_prev_register (struct frame_
return;
}
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
}
static const struct frame_unwind amd64_frame_unwind =
Index: dwarf2-frame.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v
retrieving revision 1.38
diff -p -u -r1.38 dwarf2-frame.c
--- dwarf2-frame.c 23 Jul 2004 22:05:20 -0000 1.38
+++ dwarf2-frame.c 29 Oct 2004 13:33:05 -0000
@@ -770,9 +770,12 @@ dwarf2_frame_prev_register (struct frame
break;
case DWARF2_FRAME_REG_SAVED_REG:
- regnum = DWARF2_REG_TO_REGNUM (cache->reg[regnum].loc.reg);
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = DWARF2_REG_TO_REGNUM (cache->reg[regnum].loc.reg);
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
break;
case DWARF2_FRAME_REG_SAVED_EXP:
@@ -797,13 +800,21 @@ dwarf2_frame_prev_register (struct frame
"undefined"). Code above issues a complaint about this.
Here just fudge the books, assume GCC, and that the value is
more inner on the stack. */
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
break;
case DWARF2_FRAME_REG_SAME_VALUE:
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
break;
case DWARF2_FRAME_REG_CFA:
Index: i386-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.c,v
retrieving revision 1.201
diff -p -u -r1.201 i386-tdep.c
--- i386-tdep.c 18 Sep 2004 20:16:37 -0000 1.201
+++ i386-tdep.c 29 Oct 2004 13:33:05 -0000
@@ -984,8 +984,12 @@ i386_frame_prev_register (struct frame_i
if (regnum == I386_EIP_REGNUM && cache->pc_in_eax)
{
- frame_register_unwind (next_frame, I386_EAX_REGNUM,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = I386_EAX_REGNUM;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
return;
}
@@ -1018,8 +1022,12 @@ i386_frame_prev_register (struct frame_i
return;
}
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
}
static const struct frame_unwind i386_frame_unwind =
Index: m68k-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/m68k-tdep.c,v
retrieving revision 1.95
diff -p -u -r1.95 m68k-tdep.c
--- m68k-tdep.c 2 Sep 2004 19:16:36 -0000 1.95
+++ m68k-tdep.c 29 Oct 2004 13:33:05 -0000
@@ -862,8 +862,12 @@ m68k_frame_prev_register (struct frame_i
return;
}
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
}
static const struct frame_unwind m68k_frame_unwind =
Index: sh-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sh-tdep.c,v
retrieving revision 1.177
diff -p -u -r1.177 sh-tdep.c
--- sh-tdep.c 6 Oct 2004 08:59:02 -0000 1.177
+++ sh-tdep.c 29 Oct 2004 13:33:05 -0000
@@ -2363,8 +2363,12 @@ sh_frame_prev_register (struct frame_inf
return;
}
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
}
static void
Index: sparc-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sparc-tdep.c,v
retrieving revision 1.153
diff -p -u -r1.153 sparc-tdep.c
--- sparc-tdep.c 7 Jun 2004 02:02:55 -0000 1.153
+++ sparc-tdep.c 29 Oct 2004 13:33:06 -0000
@@ -763,8 +763,12 @@ sparc32_frame_prev_register (struct fram
&& regnum >= SPARC_O0_REGNUM && regnum <= SPARC_O7_REGNUM)
regnum += (SPARC_I0_REGNUM - SPARC_O0_REGNUM);
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
}
static const struct frame_unwind sparc32_frame_unwind =
Index: sparc64-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sparc64-tdep.c,v
retrieving revision 1.14
diff -p -u -r1.14 sparc64-tdep.c
--- sparc64-tdep.c 24 Jun 2004 19:36:41 -0000 1.14
+++ sparc64-tdep.c 29 Oct 2004 13:33:06 -0000
@@ -544,8 +544,12 @@ sparc64_frame_prev_register (struct fram
&& regnum >= SPARC_O0_REGNUM && regnum <= SPARC_O7_REGNUM)
regnum += (SPARC_I0_REGNUM - SPARC_O0_REGNUM);
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, regnum, valuep);
}
static const struct frame_unwind sparc64_frame_unwind =
Index: trad-frame.c
===================================================================
RCS file: /cvs/src/src/gdb/trad-frame.c,v
retrieving revision 1.7
diff -p -u -r1.7 trad-frame.c
--- trad-frame.c 1 Aug 2004 14:34:39 -0000 1.7
+++ trad-frame.c 29 Oct 2004 13:33:06 -0000
@@ -145,9 +145,13 @@ trad_frame_get_prev_register (struct fra
}
else if (trad_frame_realreg_p (this_saved_regs, regnum))
{
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realregp = this_saved_regs[regnum].realreg;
/* Ask the next frame to return the value of the register. */
- frame_register_unwind (next_frame, this_saved_regs[regnum].realreg,
- optimizedp, lvalp, addrp, realregp, bufferp);
+ if (bufferp)
+ frame_unwind_register (next_frame, (*realregp), bufferp);
}
else if (trad_frame_value_p (this_saved_regs, regnum))
{
Index: xstormy16-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/xstormy16-tdep.c,v
retrieving revision 1.82
diff -p -u -r1.82 xstormy16-tdep.c
--- xstormy16-tdep.c 23 Sep 2004 17:00:16 -0000 1.82
+++ xstormy16-tdep.c 29 Oct 2004 13:33:06 -0000
@@ -712,8 +712,12 @@ xstormy16_frame_prev_register (struct fr
return;
}
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, (*realnump), valuep);
}
static void
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [commit] Fix info frame's saved registers output
2004-10-29 14:03 [commit] Fix info frame's saved registers output Andrew Cagney
@ 2004-10-29 14:35 ` Mark Kettenis
2004-10-30 23:06 ` Eli Zaretskii
1 sibling, 0 replies; 4+ messages in thread
From: Mark Kettenis @ 2004-10-29 14:35 UTC (permalink / raw)
To: cagney; +Cc: gdb-patches
Date: Fri, 29 Oct 2004 10:02:09 -0400
From: Andrew Cagney <cagney@gnu.org>
Hello,
Folloing up from my earlier e-mail, this restores the original behavior
of the "info frame" saved registers output. It will now consistently
display the registers saved by the selected frame, and the output won't
change as the stack changes.
Makes sense to me. The only thing that bothers me is why you used the
extra braces around *realnump in the frame_unwind_register calls?
Mark
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [commit] Fix info frame's saved registers output
2004-10-29 14:03 [commit] Fix info frame's saved registers output Andrew Cagney
2004-10-29 14:35 ` Mark Kettenis
@ 2004-10-30 23:06 ` Eli Zaretskii
2004-10-31 22:44 ` Andrew Cagney
1 sibling, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2004-10-30 23:06 UTC (permalink / raw)
To: Andrew Cagney; +Cc: gdb-patches
> Date: Fri, 29 Oct 2004 10:02:09 -0400
> From: Andrew Cagney <cagney@gnu.org>
>
> 2004-10-27 Andrew Cagney <cagney@gnu.org>
>
> * trad-frame.c (trad_frame_get_prev_register): Use
> frame_unwind_register instead of frame_register_unwind
Isn't it confusing to have 2 different functions whose names are just
permutations of the same words? How can a GDB hacker know what is the
difference between frame_register_unwind and frame_unwind_register,
without reading the sources?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [commit] Fix info frame's saved registers output
2004-10-30 23:06 ` Eli Zaretskii
@ 2004-10-31 22:44 ` Andrew Cagney
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Cagney @ 2004-10-31 22:44 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: gdb-patches
Eli Zaretskii wrote:
>>Date: Fri, 29 Oct 2004 10:02:09 -0400
>>From: Andrew Cagney <cagney@gnu.org>
>>
>>2004-10-27 Andrew Cagney <cagney@gnu.org>
>>
>> * trad-frame.c (trad_frame_get_prev_register): Use
>> frame_unwind_register instead of frame_register_unwind
>
>
> Isn't it confusing to have 2 different functions whose names are just
> permutations of the same words? How can a GDB hacker know what is the
> difference between frame_register_unwind and frame_unwind_register,
> without reading the sources?
True, wan't to rename it? At the top of frame.h there's a blurb
proposed naming convention.
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-10-31 22:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-10-29 14:03 [commit] Fix info frame's saved registers output Andrew Cagney
2004-10-29 14:35 ` Mark Kettenis
2004-10-30 23:06 ` Eli Zaretskii
2004-10-31 22:44 ` Andrew Cagney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox