GDB (xrefs)
Classes | Functions
/tmp/gdb-8.1/gdb/findvar.c File Reference
#include "defs.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "frame.h"
#include "value.h"
#include "gdbcore.h"
#include "inferior.h"
#include "target.h"
#include "symfile.h"
#include "regcache.h"
#include "user-regs.h"
#include "block.h"
#include "objfiles.h"
#include "language.h"
#include "dwarf2loc.h"
#include "selftest.h"

Go to the source code of this file.

Classes

struct  minsym_lookup_data
 

Functions

template<typename T , typename >
extract_integer (const gdb_byte *addr, int len, enum bfd_endian byte_order)
 
template LONGEST extract_integer< LONGEST > (const gdb_byte *addr, int len, enum bfd_endian byte_order)
 
template ULONGEST extract_integer< ULONGEST > (const gdb_byte *addr, int len, enum bfd_endian byte_order)
 
int extract_long_unsigned_integer (const gdb_byte *addr, int orig_len, enum bfd_endian byte_order, LONGEST *pval)
 
CORE_ADDR extract_typed_address (const gdb_byte *buf, struct type *type)
 
template<typename T , typename >
void store_integer (gdb_byte *addr, int len, enum bfd_endian byte_order, T val)
 
template void store_integer (gdb_byte *addr, int len, enum bfd_endian byte_order, LONGEST val)
 
template void store_integer (gdb_byte *addr, int len, enum bfd_endian byte_order, ULONGEST val)
 
void store_typed_address (gdb_byte *buf, struct type *type, CORE_ADDR addr)
 
void copy_integer_to_size (gdb_byte *dest, int dest_size, const gdb_byte *source, int source_size, bool is_signed, enum bfd_endian byte_order)
 
struct valuevalue_of_register (int regnum, struct frame_info *frame)
 
struct valuevalue_of_register_lazy (struct frame_info *frame, int regnum)
 
CORE_ADDR unsigned_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
 
CORE_ADDR signed_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
 
void unsigned_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
 
void address_to_signed_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
 
enum symbol_needs_kind symbol_read_needs (struct symbol *sym)
 
int symbol_read_needs_frame (struct symbol *sym)
 
static int minsym_lookup_iterator_cb (struct objfile *objfile, void *cb_data)
 
static struct frame_infofollow_static_link (struct frame_info *frame, const struct dynamic_prop *static_link)
 
static struct frame_infoget_hosting_frame (struct symbol *var, const struct block *var_block, struct frame_info *frame)
 
struct valuedefault_read_var_value (struct symbol *var, const struct block *var_block, struct frame_info *frame)
 
struct valueread_var_value (struct symbol *var, const struct block *var_block, struct frame_info *frame)
 
struct valuedefault_value_from_register (struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_id frame_id)
 
void read_frame_register_value (struct value *value, struct frame_info *frame)
 
struct valuevalue_from_register (struct type *type, int regnum, struct frame_info *frame)
 
CORE_ADDR address_from_register (int regnum, struct frame_info *frame)
 
void _initialize_findvar (void)
 

Function Documentation

◆ _initialize_findvar()

void _initialize_findvar ( void  )

Definition at line 1094 of file findvar.c.

References selftests::register_test().

◆ address_from_register()

CORE_ADDR address_from_register ( int  regnum,
struct frame_info frame 
)

◆ address_to_signed_pointer()

void address_to_signed_pointer ( struct gdbarch gdbarch,
struct type type,
gdb_byte buf,
CORE_ADDR  addr 
)

Definition at line 340 of file findvar.c.

References gdbarch_byte_order(), store_signed_integer(), and TYPE_LENGTH.

Referenced by mips_gdbarch_init().

◆ copy_integer_to_size()

void copy_integer_to_size ( gdb_byte dest,
int  dest_size,
const gdb_byte source,
int  source_size,
bool  is_signed,
enum bfd_endian  byte_order 
)

Definition at line 224 of file findvar.c.

References memset().

Referenced by regcache::raw_collect_integer(), and regcache::raw_supply_integer().

◆ default_read_var_value()

struct value* default_read_var_value ( struct symbol var,
const struct block var_block,
struct frame_info frame 
)

Definition at line 587 of file findvar.c.

References _, allocate_optimized_out_value(), allocate_value(), BLOCK_START, BMSYMBOL_VALUE_ADDRESS, check_typedef(), error(), gdb_assert, gdb_assert_not_reached, gdbarch_byte_order(), gdbarch_iterate_over_objfiles_in_search_order(), get_frame_arch(), get_frame_args_address(), get_frame_locals_address(), get_hosting_frame(), get_type_arch(), is_dynamic_type(), LOC_ARG, LOC_BLOCK, LOC_COMPUTED, LOC_CONST, LOC_CONST_BYTES, LOC_LABEL, LOC_LOCAL, LOC_OPTIMIZED_OUT, LOC_REF_ARG, LOC_REGISTER, LOC_REGPARM_ADDR, LOC_STATIC, LOC_TYPEDEF, LOC_UNRESOLVED, lookup_pointer_type(), memset(), bound_minimal_symbol::minsym, minsym_lookup_iterator_cb(), MSYMBOL_OBJ_SECTION, MSYMBOL_VALUE_RAW_ADDRESS, minsym_lookup_data::name, not_lval, bound_minimal_symbol::objfile, obj_section::objfile, objfile_flavour_name(), overlay_debugging, resolve_dynamic_type(), minsym_lookup_data::result, store_signed_integer(), store_typed_address(), symbol_arch(), SYMBOL_BLOCK_VALUE, SYMBOL_CLASS, SYMBOL_COMPUTED_OPS, SYMBOL_LINKAGE_NAME, SYMBOL_NEEDS_FRAME, SYMBOL_NEEDS_REGISTERS, SYMBOL_OBJ_SECTION, symbol_objfile(), symbol_overlayed_address(), SYMBOL_PRINT_NAME, symbol_read_needs(), SYMBOL_REGISTER_OPS, SYMBOL_TYPE, SYMBOL_VALUE, SYMBOL_VALUE_ADDRESS, SYMBOL_VALUE_BYTES, target_has_registers, target_translate_tls_address(), obj_section::the_bfd_section, TYPE_LENGTH, value_as_address(), value_at(), value_at_lazy(), value_contents_raw(), value_from_register(), and VALUE_LVAL.

Referenced by ada_read_var_value().

◆ default_value_from_register()

struct value* default_value_from_register ( struct gdbarch gdbarch,
struct type type,
int  regnum,
struct frame_id frame_id   
)

◆ extract_integer()

template<typename T , typename >
T extract_integer ( const gdb_byte addr,
int  len,
enum bfd_endian  byte_order 
)

Definition at line 51 of file findvar.c.

References _, and error().

◆ extract_integer< LONGEST >()

template LONGEST extract_integer< LONGEST > ( const gdb_byte addr,
int  len,
enum bfd_endian  byte_order 
)

Referenced by extract_signed_integer().

◆ extract_integer< ULONGEST >()

template ULONGEST extract_integer< ULONGEST > ( const gdb_byte addr,
int  len,
enum bfd_endian  byte_order 
)

◆ extract_long_unsigned_integer()

int extract_long_unsigned_integer ( const gdb_byte addr,
int  orig_len,
enum bfd_endian  byte_order,
LONGEST pval 
)

Definition at line 104 of file findvar.c.

References extract_unsigned_integer().

◆ extract_typed_address()

CORE_ADDR extract_typed_address ( const gdb_byte buf,
struct type type 
)

◆ follow_static_link()

static struct frame_info* follow_static_link ( struct frame_info frame,
const struct dynamic_prop static_link 
)
static

◆ get_hosting_frame()

static struct frame_info* get_hosting_frame ( struct symbol var,
const struct block var_block,
struct frame_info frame 
)
static

◆ minsym_lookup_iterator_cb()

static int minsym_lookup_iterator_cb ( struct objfile objfile,
void *  cb_data 
)
static

◆ read_frame_register_value()

void read_frame_register_value ( struct value value,
struct frame_info frame 
)

◆ read_var_value()

struct value* read_var_value ( struct symbol var,
const struct block var_block,
struct frame_info frame 
)

◆ signed_pointer_to_address()

CORE_ADDR signed_pointer_to_address ( struct gdbarch gdbarch,
struct type type,
const gdb_byte buf 
)

Definition at line 320 of file findvar.c.

References extract_signed_integer(), gdbarch_byte_order(), and TYPE_LENGTH.

Referenced by mips_gdbarch_init().

◆ store_integer() [1/3]

template<typename T , typename >
void store_integer ( gdb_byte addr,
int  len,
enum bfd_endian  byte_order,
val 
)

◆ store_integer() [2/3]

template void store_integer ( gdb_byte addr,
int  len,
enum bfd_endian  byte_order,
LONGEST  val 
)

◆ store_integer() [3/3]

template void store_integer ( gdb_byte addr,
int  len,
enum bfd_endian  byte_order,
ULONGEST  val 
)

◆ store_typed_address()

void store_typed_address ( gdb_byte buf,
struct type type,
CORE_ADDR  addr 
)

◆ symbol_read_needs()

enum symbol_needs_kind symbol_read_needs ( struct symbol sym)

◆ symbol_read_needs_frame()

int symbol_read_needs_frame ( struct symbol sym)

◆ unsigned_address_to_pointer()

void unsigned_address_to_pointer ( struct gdbarch gdbarch,
struct type type,
gdb_byte buf,
CORE_ADDR  addr 
)

Definition at line 331 of file findvar.c.

References gdbarch_byte_order(), store_unsigned_integer(), and TYPE_LENGTH.

Referenced by gdbarch_alloc().

◆ unsigned_pointer_to_address()

CORE_ADDR unsigned_pointer_to_address ( struct gdbarch gdbarch,
struct type type,
const gdb_byte buf 
)

Definition at line 311 of file findvar.c.

References extract_unsigned_integer(), gdbarch_byte_order(), and TYPE_LENGTH.

Referenced by gdbarch_alloc().

◆ value_from_register()

struct value* value_from_register ( struct type type,
int  regnum,
struct frame_info frame 
)

◆ value_of_register()

struct value* value_of_register ( int  regnum,
struct frame_info frame 
)

◆ value_of_register_lazy()

struct value* value_of_register_lazy ( struct frame_info frame,
int  regnum 
)