projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix 'selected frame' varobjs.
[deliverable/binutils-gdb.git]
/
gdb
/
alpha-mdebug-tdep.c
diff --git
a/gdb/alpha-mdebug-tdep.c
b/gdb/alpha-mdebug-tdep.c
index d481986b8c39a1ad3e3c1a80c77285d7f325a219..c2f180251bfcb64b7788123ae1b5ca5b4f171ac6 100644
(file)
--- a/
gdb/alpha-mdebug-tdep.c
+++ b/
gdb/alpha-mdebug-tdep.c
@@
-1,6
+1,6
@@
/* Target-dependent mdebug code for the ALPHA architecture.
/* Target-dependent mdebug code for the ALPHA architecture.
- Copyright
1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
- Free Software Foundation, Inc.
+ Copyright
(C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+
2003, 2007
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-16,8
+16,8
@@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 5
9 Temple Place - Suite 330
,
- Boston, MA 0211
1-1307
, USA. */
+ Foundation, Inc., 5
1 Franklin Street, Fifth Floor
,
+ Boston, MA 0211
0-1301
, USA. */
#include "defs.h"
#include "frame.h"
#include "defs.h"
#include "frame.h"
@@
-29,6
+29,7
@@
#include "gdb_assert.h"
#include "alpha-tdep.h"
#include "gdb_assert.h"
#include "alpha-tdep.h"
+#include "mdebugread.h"
/* FIXME: Some of this code should perhaps be merged with mips. */
/* FIXME: Some of this code should perhaps be merged with mips. */
@@
-45,7
+46,7
@@
| |localoff | Copies of 1st .. 6th |
| | | | | argument if necessary. |
| | | v | |
| |localoff | Copies of 1st .. 6th |
| | | | | argument if necessary. |
| | | v | |
- | | | --- |-------------------------------|<--
FRAME_
LOCALS_ADDRESS
+ | | | --- |-------------------------------|<-- LOCALS_ADDRESS
| | | | |
| | | | Locals and temporaries. |
| | | | |
| | | | |
| | | | Locals and temporaries. |
| | | | |
@@
-90,11
+91,11
@@
/* Locate the mdebug PDR for the given PC. Return null if one can't
be found; you'll have to fall back to other methods in that case. */
/* Locate the mdebug PDR for the given PC. Return null if one can't
be found; you'll have to fall back to other methods in that case. */
-static
alpha_extra_func_info_t
+static
struct mdebug_extra_func_info *
find_proc_desc (CORE_ADDR pc)
{
struct block *b = block_for_pc (pc);
find_proc_desc (CORE_ADDR pc)
{
struct block *b = block_for_pc (pc);
-
alpha_extra_func_info_t
proc_desc = NULL;
+
struct mdebug_extra_func_info *
proc_desc = NULL;
struct symbol *sym = NULL;
if (b)
struct symbol *sym = NULL;
if (b)
@@
-108,12
+109,12
@@
find_proc_desc (CORE_ADDR pc)
symbol reading. */
sym = NULL;
else
symbol reading. */
sym = NULL;
else
- sym = lookup_symbol (M
IPS
_EFI_SYMBOL_NAME, b, LABEL_DOMAIN, 0, NULL);
+ sym = lookup_symbol (M
DEBUG
_EFI_SYMBOL_NAME, b, LABEL_DOMAIN, 0, NULL);
}
if (sym)
{
}
if (sym)
{
- proc_desc = (
alpha_extra_func_info_t
) SYMBOL_VALUE (sym);
+ proc_desc = (
struct mdebug_extra_func_info *
) SYMBOL_VALUE (sym);
/* If we never found a PDR for this function in symbol reading,
then examine prologues to find the information. */
/* If we never found a PDR for this function in symbol reading,
then examine prologues to find the information. */
@@
-128,7
+129,7
@@
find_proc_desc (CORE_ADDR pc)
find the prologue, then return 0. */
static CORE_ADDR
find the prologue, then return 0. */
static CORE_ADDR
-alpha_mdebug_after_prologue (CORE_ADDR pc,
alpha_extra_func_info_t
proc_desc)
+alpha_mdebug_after_prologue (CORE_ADDR pc,
struct mdebug_extra_func_info *
proc_desc)
{
if (proc_desc)
{
{
if (proc_desc)
{
@@
-146,7
+147,7
@@
alpha_mdebug_after_prologue (CORE_ADDR pc, alpha_extra_func_info_t proc_desc)
if we are definitively *not* in a function prologue. */
static int
if we are definitively *not* in a function prologue. */
static int
-alpha_mdebug_in_prologue (CORE_ADDR pc,
alpha_extra_func_info_t
proc_desc)
+alpha_mdebug_in_prologue (CORE_ADDR pc,
struct mdebug_extra_func_info *
proc_desc)
{
CORE_ADDR after_prologue_pc = alpha_mdebug_after_prologue (pc, proc_desc);
return (after_prologue_pc == 0 || pc < after_prologue_pc);
{
CORE_ADDR after_prologue_pc = alpha_mdebug_after_prologue (pc, proc_desc);
return (after_prologue_pc == 0 || pc < after_prologue_pc);
@@
-157,7
+158,7
@@
alpha_mdebug_in_prologue (CORE_ADDR pc, alpha_extra_func_info_t proc_desc)
struct alpha_mdebug_unwind_cache
{
struct alpha_mdebug_unwind_cache
{
-
alpha_extra_func_info_t
proc_desc;
+
struct mdebug_extra_func_info *
proc_desc;
CORE_ADDR vfp;
CORE_ADDR *saved_regs;
};
CORE_ADDR vfp;
CORE_ADDR *saved_regs;
};
@@
-170,7
+171,7
@@
alpha_mdebug_frame_unwind_cache (struct frame_info *next_frame,
void **this_prologue_cache)
{
struct alpha_mdebug_unwind_cache *info;
void **this_prologue_cache)
{
struct alpha_mdebug_unwind_cache *info;
-
alpha_extra_func_info_t
proc_desc;
+
struct mdebug_extra_func_info *
proc_desc;
ULONGEST vfp;
CORE_ADDR pc, reg_position;
unsigned long mask;
ULONGEST vfp;
CORE_ADDR pc, reg_position;
unsigned long mask;
@@
-255,7
+256,7
@@
alpha_mdebug_frame_prev_register (struct frame_info *next_frame,
void **this_prologue_cache,
int regnum, int *optimizedp,
enum lval_type *lvalp, CORE_ADDR *addrp,
void **this_prologue_cache,
int regnum, int *optimizedp,
enum lval_type *lvalp, CORE_ADDR *addrp,
- int *realnump,
void
*bufferp)
+ int *realnump,
gdb_byte
*bufferp)
{
struct alpha_mdebug_unwind_cache *info
= alpha_mdebug_frame_unwind_cache (next_frame, this_prologue_cache);
{
struct alpha_mdebug_unwind_cache *info
= alpha_mdebug_frame_unwind_cache (next_frame, this_prologue_cache);
@@
-293,8
+294,12
@@
alpha_mdebug_frame_prev_register (struct frame_info *next_frame,
}
/* Otherwise assume the next frame has the same register value. */
}
/* Otherwise assume the next frame has the same register value. */
- frame_register (next_frame, regnum, optimizedp, lvalp, addrp,
- realnump, bufferp);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (bufferp)
+ frame_unwind_register (next_frame, *realnump, bufferp);
}
static const struct frame_unwind alpha_mdebug_frame_unwind = {
}
static const struct frame_unwind alpha_mdebug_frame_unwind = {
@@
-304,9
+309,10
@@
static const struct frame_unwind alpha_mdebug_frame_unwind = {
};
const struct frame_unwind *
};
const struct frame_unwind *
-alpha_mdebug_frame_
p (CORE_ADDR pc
)
+alpha_mdebug_frame_
sniffer (struct frame_info *next_frame
)
{
{
- alpha_extra_func_info_t proc_desc;
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
+ struct mdebug_extra_func_info *proc_desc;
/* If this PC does not map to a PDR, then clearly this isn't an
mdebug frame. */
/* If this PC does not map to a PDR, then clearly this isn't an
mdebug frame. */
@@
-360,9
+366,10
@@
static const struct frame_base alpha_mdebug_frame_base = {
};
static const struct frame_base *
};
static const struct frame_base *
-alpha_mdebug_frame_base_
p (CORE_ADDR pc
)
+alpha_mdebug_frame_base_
sniffer (struct frame_info *next_frame
)
{
{
- alpha_extra_func_info_t proc_desc;
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
+ struct mdebug_extra_func_info *proc_desc;
/* If this PC does not map to a PDR, then clearly this isn't an
mdebug frame. */
/* If this PC does not map to a PDR, then clearly this isn't an
mdebug frame. */
@@
-379,6
+386,6
@@
alpha_mdebug_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- frame_unwind_append_
predicate (gdbarch, alpha_mdebug_frame_p
);
- frame_base_append_
predicate (gdbarch, alpha_mdebug_frame_base_p
);
+ frame_unwind_append_
sniffer (gdbarch, alpha_mdebug_frame_sniffer
);
+ frame_base_append_
sniffer (gdbarch, alpha_mdebug_frame_base_sniffer
);
}
}
This page took
0.027849 seconds
and
4
git commands to generate.