GDB (xrefs)

Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/alpha-mdebug-tdep.c File Reference
`#include "defs.h"`
`#include "frame.h"`
`#include "frame-unwind.h"`
`#include "frame-base.h"`
`#include "symtab.h"`
`#include "gdbcore.h"`
`#include "block.h"`
`#include "trad-frame.h"`
`#include "alpha-tdep.h"`
`#include "mdebugread.h"`

Go to the source code of this file.

## Classes
struct | alpha_mdebug_unwind_cache

## Macros
#define | PROC_LOW_ADDR(proc) ((proc)->pdr.adr)
#define | PROC_FRAME_OFFSET(proc) ((proc)->pdr.frameoffset)
#define | PROC_FRAME_REG(proc) ((proc)->pdr.framereg)
#define | PROC_REG_MASK(proc) ((proc)->pdr.regmask)
#define | PROC_FREG_MASK(proc) ((proc)->pdr.fregmask)
#define | PROC_REG_OFFSET(proc) ((proc)->pdr.regoffset)
#define | PROC_FREG_OFFSET(proc) ((proc)->pdr.fregoffset)
#define | PROC_PC_REG(proc) ((proc)->pdr.pcreg)
#define | PROC_LOCALOFF(proc) ((proc)->pdr.localoff)

## Functions
static struct mdebug_extra_func_info * | find_proc_desc (CORE_ADDR pc)
static int | alpha_mdebug_frameless (struct mdebug_extra_func_info *proc_desc)
static CORE_ADDR | alpha_mdebug_after_prologue (CORE_ADDR pc, struct mdebug_extra_func_info *proc_desc)
static int | alpha_mdebug_in_prologue (CORE_ADDR pc, struct mdebug_extra_func_info *proc_desc)
static struct alpha_mdebug_unwind_cache * | alpha_mdebug_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
static void | alpha_mdebug_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * | alpha_mdebug_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static int | alpha_mdebug_max_frame_size_exceeded (struct mdebug_extra_func_info *proc_desc)
static int | alpha_mdebug_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
static CORE_ADDR | alpha_mdebug_frame_base_address (struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR | alpha_mdebug_frame_locals_address (struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR | alpha_mdebug_frame_args_address (struct frame_info *this_frame, void **this_prologue_cache)
static const struct frame_base * | alpha_mdebug_frame_base_sniffer (struct frame_info *this_frame)
void | alpha_mdebug_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)

## Variables
static const struct frame_unwind | alpha_mdebug_frame_unwind
static const struct frame_base | alpha_mdebug_frame_base

## Macro Definition Documentation

## ◆ PROC_FRAME_OFFSET

#define PROC_FRAME_OFFSET | ( |  | proc | ) | ((proc)->pdr.frameoffset)

Definition at line 79 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_unwind_cache(), alpha_mdebug_frameless(), and alpha_mdebug_max_frame_size_exceeded().

## ◆ PROC_FRAME_REG

#define PROC_FRAME_REG | ( |  | proc | ) | ((proc)->pdr.framereg)

Definition at line 80 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_unwind_cache(), and alpha_mdebug_frameless().

## ◆ PROC_FREG_MASK

#define PROC_FREG_MASK | ( |  | proc | ) | ((proc)->pdr.fregmask)

Definition at line 82 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_unwind_cache().

## ◆ PROC_FREG_OFFSET

#define PROC_FREG_OFFSET | ( |  | proc | ) | ((proc)->pdr.fregoffset)

Definition at line 84 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_unwind_cache().

## ◆ PROC_LOCALOFF

#define PROC_LOCALOFF | ( |  | proc | ) | ((proc)->pdr.localoff)

Definition at line 86 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_locals_address().

## ◆ PROC_LOW_ADDR

#define PROC_LOW_ADDR | ( |  | proc | ) | ((proc)->pdr.adr)

Definition at line 78 of file alpha-mdebug-tdep.c.

## ◆ PROC_PC_REG

#define PROC_PC_REG | ( |  | proc | ) | ((proc)->pdr.pcreg)

Definition at line 85 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_prev_register(), and alpha_mdebug_frame_unwind_cache().

## ◆ PROC_REG_MASK

#define PROC_REG_MASK | ( |  | proc | ) | ((proc)->pdr.regmask)

Definition at line 81 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_unwind_cache().

## ◆ PROC_REG_OFFSET

#define PROC_REG_OFFSET | ( |  | proc | ) | ((proc)->pdr.regoffset)

Definition at line 83 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_unwind_cache().

## Function Documentation

## ◆ alpha_mdebug_after_prologue()

static CORE_ADDR alpha_mdebug_after_prologue | ( | CORE_ADDR | pc,
|  | struct mdebug_extra_func_info * | proc_desc
| ) |  |
| static

Definition at line 150 of file alpha-mdebug-tdep.c.

References alpha_after_prologue(), and alpha_mdebug_frameless().

Referenced by alpha_mdebug_in_prologue().

## ◆ alpha_mdebug_frame_args_address()

static CORE_ADDR alpha_mdebug_frame_args_address | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 365 of file alpha-mdebug-tdep.c.

References alpha_mdebug_frame_unwind_cache(), ALPHA_NUM_ARG_REGS, and alpha_mdebug_unwind_cache::vfp.

## ◆ alpha_mdebug_frame_base_address()

static CORE_ADDR alpha_mdebug_frame_base_address | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 345 of file alpha-mdebug-tdep.c.

References alpha_mdebug_frame_unwind_cache(), and alpha_mdebug_unwind_cache::vfp.

## ◆ alpha_mdebug_frame_base_sniffer()

static const struct frame_base* alpha_mdebug_frame_base_sniffer | ( | struct frame_info * | this_frame | ) |
| static

Definition at line 382 of file alpha-mdebug-tdep.c.

References alpha_mdebug_frame_base, alpha_mdebug_max_frame_size_exceeded(), find_proc_desc(), and get_frame_address_in_block().

Referenced by alpha_mdebug_init_abi().

## ◆ alpha_mdebug_frame_locals_address()

static CORE_ADDR alpha_mdebug_frame_locals_address | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 355 of file alpha-mdebug-tdep.c.

References alpha_mdebug_frame_unwind_cache(), alpha_mdebug_unwind_cache::proc_desc, PROC_LOCALOFF, and alpha_mdebug_unwind_cache::vfp.

## ◆ alpha_mdebug_frame_prev_register()

static struct value* alpha_mdebug_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 279 of file alpha-mdebug-tdep.c.

References alpha_mdebug_frame_unwind_cache(), ALPHA_PC_REGNUM, alpha_mdebug_unwind_cache::proc_desc, PROC_PC_REG, regnum, alpha_mdebug_unwind_cache::saved_regs, and trad_frame_get_prev_register().

## ◆ alpha_mdebug_frame_sniffer()

static int alpha_mdebug_frame_sniffer | ( | const struct frame_unwind * | self,
|  | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 309 of file alpha-mdebug-tdep.c.

References alpha_mdebug_in_prologue(), alpha_mdebug_max_frame_size_exceeded(), find_proc_desc(), and get_frame_address_in_block().

## ◆ alpha_mdebug_frame_this_id()

static void alpha_mdebug_frame_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | struct frame_id * | this_id
| ) |  |
| static

Definition at line 266 of file alpha-mdebug-tdep.c.

References alpha_mdebug_frame_unwind_cache(), frame_id_build(), get_frame_func(), and alpha_mdebug_unwind_cache::vfp.

## ◆ alpha_mdebug_frame_unwind_cache()

static struct alpha_mdebug_unwind_cache* alpha_mdebug_frame_unwind_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 189 of file alpha-mdebug-tdep.c.

References trad_frame_saved_reg::addr, ALPHA_FP0_REGNUM, ALPHA_SP_REGNUM, find_proc_desc(), FRAME_OBSTACK_ZALLOC, gdb_assert, get_frame_address_in_block(), get_frame_register_unsigned(), alpha_mdebug_unwind_cache::proc_desc, PROC_FRAME_OFFSET, PROC_FRAME_REG, PROC_FREG_MASK, PROC_FREG_OFFSET, PROC_PC_REG, PROC_REG_MASK, PROC_REG_OFFSET, alpha_mdebug_unwind_cache::saved_regs, trad_frame_addr_p(), trad_frame_alloc_saved_regs(), trad_frame_set_value(), and alpha_mdebug_unwind_cache::vfp.

Referenced by alpha_mdebug_frame_args_address(), alpha_mdebug_frame_base_address(), alpha_mdebug_frame_locals_address(), alpha_mdebug_frame_prev_register(), and alpha_mdebug_frame_this_id().

## ◆ alpha_mdebug_frameless()

static int alpha_mdebug_frameless | ( | struct mdebug_extra_func_info * | proc_desc | ) |
| static

Definition at line 140 of file alpha-mdebug-tdep.c.

References ALPHA_SP_REGNUM, PROC_FRAME_OFFSET, and PROC_FRAME_REG.

Referenced by alpha_mdebug_after_prologue(), and alpha_mdebug_max_frame_size_exceeded().

## ◆ alpha_mdebug_in_prologue()

static int alpha_mdebug_in_prologue | ( | CORE_ADDR | pc,
|  | struct mdebug_extra_func_info * | proc_desc
| ) |  |
| static

Definition at line 168 of file alpha-mdebug-tdep.c.

References alpha_mdebug_after_prologue().

Referenced by alpha_mdebug_frame_sniffer().

## ◆ alpha_mdebug_init_abi()

void alpha_mdebug_init_abi | ( | struct gdbarch_info | info,
|  | struct gdbarch * | gdbarch
| ) |  |

Definition at line 403 of file alpha-mdebug-tdep.c.

References alpha_mdebug_frame_base_sniffer(), alpha_mdebug_frame_unwind, frame_base_append_sniffer(), and frame_unwind_append_unwinder().

Referenced by alpha_linux_init_abi(), alphanbsd_init_abi(), and alphaobsd_init_abi().

## ◆ alpha_mdebug_max_frame_size_exceeded()

static int alpha_mdebug_max_frame_size_exceeded | ( | struct mdebug_extra_func_info * | proc_desc | ) |
| static

Definition at line 298 of file alpha-mdebug-tdep.c.

References alpha_mdebug_frameless(), alpha_mdebug_unwind_cache::proc_desc, and PROC_FRAME_OFFSET.

Referenced by alpha_mdebug_frame_base_sniffer(), and alpha_mdebug_frame_sniffer().

## ◆ find_proc_desc()

static struct mdebug_extra_func_info* find_proc_desc | ( | CORE_ADDR | pc | ) |
| static

Definition at line 92 of file alpha-mdebug-tdep.c.

References ALPHA_RA_REGNUM, block_for_pc(), BLOCK_START, find_pc_partial_function(), LABEL_DOMAIN, lookup_symbol(), MDEBUG_EFI_SYMBOL_NAME, mdebug_extra_func_info::pdr, block_symbol::symbol, and SYMBOL_VALUE_BYTES.

Referenced by alpha_mdebug_frame_base_sniffer(), alpha_mdebug_frame_sniffer(), and alpha_mdebug_frame_unwind_cache().

## Variable Documentation

## ◆ alpha_mdebug_frame_base

const struct frame_base alpha_mdebug_frame_base
| static

Initial value:
= {
&alpha_mdebug_frame_unwind,
alpha_mdebug_frame_base_address,
alpha_mdebug_frame_locals_address,
alpha_mdebug_frame_args_address
}
alpha_mdebug_frame_args_address
static CORE_ADDR alpha_mdebug_frame_args_address(struct frame_info *this_frame, void **this_prologue_cache)
Definition: alpha-mdebug-tdep.c:365
alpha_mdebug_frame_unwind
static const struct frame_unwind alpha_mdebug_frame_unwind
Definition: alpha-mdebug-tdep.c:335
alpha_mdebug_frame_base_address
static CORE_ADDR alpha_mdebug_frame_base_address(struct frame_info *this_frame, void **this_prologue_cache)
Definition: alpha-mdebug-tdep.c:345
alpha_mdebug_frame_locals_address
static CORE_ADDR alpha_mdebug_frame_locals_address(struct frame_info *this_frame, void **this_prologue_cache)
Definition: alpha-mdebug-tdep.c:355

Definition at line 374 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_frame_base_sniffer().

## ◆ alpha_mdebug_frame_unwind

const struct frame_unwind alpha_mdebug_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
alpha_mdebug_frame_this_id,
alpha_mdebug_frame_prev_register,
NULL,
alpha_mdebug_frame_sniffer
}
alpha_mdebug_frame_this_id
static void alpha_mdebug_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: alpha-mdebug-tdep.c:266
alpha_mdebug_frame_prev_register
static struct value * alpha_mdebug_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: alpha-mdebug-tdep.c:279
NORMAL_FRAME
Definition: frame.h:244
alpha_mdebug_frame_sniffer
static int alpha_mdebug_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: alpha-mdebug-tdep.c:309
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

Definition at line 335 of file alpha-mdebug-tdep.c.

Referenced by alpha_mdebug_init_abi().