From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4537 invoked by alias); 29 Oct 2004 14:03:47 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 4493 invoked from network); 29 Oct 2004 14:03:46 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 29 Oct 2004 14:03:46 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id i9TE3eXo025181 for ; Fri, 29 Oct 2004 10:03:46 -0400 Received: from localhost.redhat.com (to-dhcp51.toronto.redhat.com [172.16.14.151]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i9TE3er16925; Fri, 29 Oct 2004 10:03:40 -0400 Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 5C170129D8B; Fri, 29 Oct 2004 10:02:09 -0400 (EDT) Message-ID: <41824D61.3050208@gnu.org> Date: Fri, 29 Oct 2004 14:03:00 -0000 From: Andrew Cagney User-Agent: Mozilla Thunderbird 0.8 (X11/20041020) MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Subject: [commit] Fix info frame's saved registers output Content-Type: multipart/mixed; boundary="------------010004000801050602010706" X-SW-Source: 2004-10/txt/msg00476.txt.bz2 This is a multi-part message in MIME format. --------------010004000801050602010706 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 273 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 --------------010004000801050602010706 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" Content-length: 8613 2004-10-27 Andrew Cagney * 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 --------------010004000801050602010706--