GDB (xrefs)
Classes | Typedefs | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/dwarf2loc.c File Reference
#include "defs.h"
#include "ui-out.h"
#include "value.h"
#include "frame.h"
#include "gdbcore.h"
#include "target.h"
#include "inferior.h"
#include "ax.h"
#include "ax-gdb.h"
#include "regcache.h"
#include "objfiles.h"
#include "exceptions.h"
#include "block.h"
#include "gdbcmd.h"
#include "dwarf2.h"
#include "dwarf2expr.h"
#include "dwarf2loc.h"
#include "dwarf2-frame.h"
#include "gdb_string.h"
#include "gdb_assert.h"

Go to the source code of this file.

Classes

struct  dwarf_expr_baton
struct  piece_closure
struct  needs_frame_baton

Typedefs

typedef struct call_sitecall_sitep

Enumerations

enum  debug_loc_kind {
  DEBUG_LOC_END_OF_LIST = 0, DEBUG_LOC_BASE_ADDRESS = 1, DEBUG_LOC_START_END = 2, DEBUG_LOC_START_LENGTH = 3,
  DEBUG_LOC_BUFFER_OVERFLOW = -1, DEBUG_LOC_INVALID_ENTRY = -2
}

Functions

static void dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length)
static struct valuedwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame, const gdb_byte *data, size_t size, struct dwarf2_per_cu_data *per_cu, LONGEST byte_offset)
static void invalid_synthetic_pointer (void)
static enum debug_loc_kind decode_debug_loc_addresses (const gdb_byte *loc_ptr, const gdb_byte *buf_end, const gdb_byte **new_ptr, CORE_ADDR *low, CORE_ADDR *high, enum bfd_endian byte_order, unsigned int addr_size, int signed_addr_p)
static enum debug_loc_kind decode_debug_loc_dwo_addresses (struct dwarf2_per_cu_data *per_cu, const gdb_byte *loc_ptr, const gdb_byte *buf_end, const gdb_byte **new_ptr, CORE_ADDR *low, CORE_ADDR *high, enum bfd_endian byte_order)
const gdb_bytedwarf2_find_location_expression (struct dwarf2_loclist_baton *baton, size_t *locexpr_length, CORE_ADDR pc)
static CORE_ADDR dwarf_expr_read_reg (void *baton, int dwarf_regnum)
static void dwarf_expr_read_mem (void *baton, gdb_byte *buf, CORE_ADDR addr, size_t len)
static void dwarf_expr_frame_base (void *baton, const gdb_byte **start, size_t *length)
static void locexpr_find_frame_base_location (struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length)
static void loclist_find_frame_base_location (struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length)
static CORE_ADDR dwarf_expr_frame_cfa (void *baton)
static CORE_ADDR dwarf_expr_frame_pc (void *baton)
static CORE_ADDR dwarf_expr_tls_address (void *baton, CORE_ADDR offset)
static void per_cu_dwarf_call (struct dwarf_expr_context *ctx, cu_offset die_offset, struct dwarf2_per_cu_data *per_cu, CORE_ADDR(*get_frame_pc)(void *baton), void *baton)
static void dwarf_expr_dwarf_call (struct dwarf_expr_context *ctx, cu_offset die_offset)
static struct typedwarf_expr_get_base_type (struct dwarf_expr_context *ctx, cu_offset die_offset)
static void show_entry_values_debug (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static CORE_ADDR call_site_to_target_addr (struct gdbarch *call_site_gdbarch, struct call_site *call_site, struct frame_info *caller_frame)
static struct symbolfunc_addr_to_tail_call_list (struct gdbarch *gdbarch, CORE_ADDR addr)
static void func_verify_no_selftailcall (struct gdbarch *gdbarch, CORE_ADDR verify_addr)
static void tailcall_dump (struct gdbarch *gdbarch, const struct call_site *call_site)
 DEF_VEC_P (call_sitep)
static void chain_candidate (struct gdbarch *gdbarch, struct call_site_chain **resultp, VEC(call_sitep)*chain)
static struct call_site_chaincall_site_find_chain_1 (struct gdbarch *gdbarch, CORE_ADDR caller_pc, CORE_ADDR callee_pc)
struct call_site_chaincall_site_find_chain (struct gdbarch *gdbarch, CORE_ADDR caller_pc, CORE_ADDR callee_pc)
static int call_site_parameter_matches (struct call_site_parameter *parameter, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u)
static struct call_site_parameter * dwarf_expr_reg_to_entry_parameter (struct frame_info *frame, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u, struct dwarf2_per_cu_data **per_cu_return)
static struct valuedwarf_entry_parameter_to_value (struct call_site_parameter *parameter, CORE_ADDR deref_size, struct type *type, struct frame_info *caller_frame, struct dwarf2_per_cu_data *per_cu)
static void dwarf_expr_push_dwarf_reg_entry_value (struct dwarf_expr_context *ctx, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u, int deref_size)
static CORE_ADDR dwarf_expr_get_addr_index (void *baton, unsigned int index)
static struct valueentry_data_value_coerce_ref (const struct value *value)
static void * entry_data_value_copy_closure (const struct value *v)
static void entry_data_value_free_closure (struct value *v)
static struct valuevalue_of_dwarf_reg_entry (struct type *type, struct frame_info *frame, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u)
static struct valuevalue_of_dwarf_block_entry (struct type *type, struct frame_info *frame, const gdb_byte *block, size_t block_len)
static struct piece_closureallocate_piece_closure (struct dwarf2_per_cu_data *per_cu, int n_pieces, struct dwarf_expr_piece *pieces, int addr_size)
static unsigned int extract_bits_primitive (const gdb_byte **source, unsigned int *source_offset_bits, int *nbits, int bits_big_endian)
static unsigned int extract_bits (const gdb_byte **source, unsigned int *source_offset_bits, int nbits, int bits_big_endian)
static void insert_bits (unsigned int datum, gdb_byte *dest, unsigned int dest_offset_bits, int nbits, int bits_big_endian)
static void copy_bitwise (gdb_byte *dest, unsigned int dest_offset_bits, const gdb_byte *source, unsigned int source_offset_bits, unsigned int bit_count, int bits_big_endian)
static void read_pieced_value (struct value *v)
static void write_pieced_value (struct value *to, struct value *from)
static int check_pieced_value_bits (const struct value *value, int bit_offset, int bit_length, enum dwarf_value_location check_for)
static int check_pieced_value_validity (const struct value *value, int bit_offset, int bit_length)
static int check_pieced_value_invalid (const struct value *value)
static int check_pieced_synthetic_pointer (const struct value *value, int bit_offset, int bit_length)
static CORE_ADDR get_frame_address_in_block_wrapper (void *baton)
static struct valueindirect_pieced_value (struct value *value)
static void * copy_pieced_value_closure (const struct value *v)
static void free_pieced_value_closure (struct value *v)
struct valuedwarf2_evaluate_loc_desc (struct type *type, struct frame_info *frame, const gdb_byte *data, size_t size, struct dwarf2_per_cu_data *per_cu)
static CORE_ADDR needs_frame_read_reg (void *baton, int regnum)
static void needs_frame_read_mem (void *baton, gdb_byte *buf, CORE_ADDR addr, size_t len)
static void needs_frame_frame_base (void *baton, const gdb_byte **start, size_t *length)
static CORE_ADDR needs_frame_frame_cfa (void *baton)
static CORE_ADDR needs_frame_tls_address (void *baton, CORE_ADDR offset)
static void needs_frame_dwarf_call (struct dwarf_expr_context *ctx, cu_offset die_offset)
static void needs_dwarf_reg_entry_value (struct dwarf_expr_context *ctx, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u, int deref_size)
static CORE_ADDR needs_get_addr_index (void *baton, unsigned int index)
static int dwarf2_loc_desc_needs_frame (const gdb_byte *data, size_t size, struct dwarf2_per_cu_data *per_cu)
static void unimplemented (unsigned int op)
static int translate_register (struct gdbarch *arch, int dwarf_reg)
static void access_memory (struct gdbarch *arch, struct agent_expr *expr, ULONGEST nbits)
static CORE_ADDR get_ax_pc (void *baton)
void dwarf2_compile_expr_to_ax (struct agent_expr *expr, struct axs_value *loc, struct gdbarch *arch, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, struct dwarf2_per_cu_data *per_cu)
static struct valuelocexpr_read_variable (struct symbol *symbol, struct frame_info *frame)
static struct valuelocexpr_read_variable_at_entry (struct symbol *symbol, struct frame_info *frame)
static int locexpr_read_needs_frame (struct symbol *symbol)
static int piece_end_p (const gdb_byte *data, const gdb_byte *end)
static const char * locexpr_regname (struct gdbarch *gdbarch, int dwarf_regnum)
static const gdb_bytelocexpr_describe_location_piece (struct symbol *symbol, struct ui_file *stream, CORE_ADDR addr, struct objfile *objfile, struct dwarf2_per_cu_data *per_cu, const gdb_byte *data, const gdb_byte *end, unsigned int addr_size)
static const gdb_bytedisassemble_dwarf_expression (struct ui_file *stream, struct gdbarch *arch, unsigned int addr_size, int offset_size, const gdb_byte *start, const gdb_byte *data, const gdb_byte *end, int indent, int all, struct dwarf2_per_cu_data *per_cu)
static void locexpr_describe_location_1 (struct symbol *symbol, CORE_ADDR addr, struct ui_file *stream, const gdb_byte *data, size_t size, struct objfile *objfile, unsigned int addr_size, int offset_size, struct dwarf2_per_cu_data *per_cu)
static void locexpr_describe_location (struct symbol *symbol, CORE_ADDR addr, struct ui_file *stream)
static void locexpr_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value)
static struct valueloclist_read_variable (struct symbol *symbol, struct frame_info *frame)
static struct valueloclist_read_variable_at_entry (struct symbol *symbol, struct frame_info *frame)
static int loclist_read_needs_frame (struct symbol *symbol)
static void loclist_describe_location (struct symbol *symbol, CORE_ADDR addr, struct ui_file *stream)
static void loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value)
void _initialize_dwarf2loc (void)

Variables

int dwarf2_always_disassemble
static struct
dwarf_expr_context_funcs 
dwarf_expr_ctx_funcs
struct symbol_block_ops dwarf2_block_frame_base_locexpr_funcs
struct symbol_block_ops dwarf2_block_frame_base_loclist_funcs
unsigned int entry_values_debug = 0
static struct lval_funcs entry_data_value_funcs
static struct lval_funcs pieced_value_funcs
static struct
dwarf_expr_context_funcs 
needs_frame_ctx_funcs
struct symbol_computed_ops dwarf2_locexpr_funcs
struct symbol_computed_ops dwarf2_loclist_funcs
initialize_file_ftype _initialize_dwarf2loc

Typedef Documentation

typedef struct call_site* call_sitep

Definition at line 724 of file dwarf2loc.c.


Enumeration Type Documentation

Enumerator:
DEBUG_LOC_END_OF_LIST 
DEBUG_LOC_BASE_ADDRESS 
DEBUG_LOC_START_END 
DEBUG_LOC_START_LENGTH 
DEBUG_LOC_BUFFER_OVERFLOW 
DEBUG_LOC_INVALID_ENTRY 

Definition at line 64 of file dwarf2loc.c.


Function Documentation

void _initialize_dwarf2loc ( void  )
static void access_memory ( struct gdbarch arch,
struct agent_expr expr,
ULONGEST  nbits 
) [static]
static struct piece_closure* allocate_piece_closure ( struct dwarf2_per_cu_data per_cu,
int  n_pieces,
struct dwarf_expr_piece pieces,
int  addr_size 
) [static, read]
struct call_site_chain* call_site_find_chain ( struct gdbarch gdbarch,
CORE_ADDR  caller_pc,
CORE_ADDR  callee_pc 
) [read]
static struct call_site_chain* call_site_find_chain_1 ( struct gdbarch gdbarch,
CORE_ADDR  caller_pc,
CORE_ADDR  callee_pc 
) [static, read]
static int call_site_parameter_matches ( struct call_site_parameter *  parameter,
enum call_site_parameter_kind  kind,
union call_site_parameter_u  kind_u 
) [static]
static CORE_ADDR call_site_to_target_addr ( struct gdbarch call_site_gdbarch,
struct call_site call_site,
struct frame_info caller_frame 
) [static]
static void chain_candidate ( struct gdbarch gdbarch,
struct call_site_chain **  resultp,
VEC(call_sitep)*  chain 
) [static]
static int check_pieced_synthetic_pointer ( const struct value value,
int  bit_offset,
int  bit_length 
) [static]

Definition at line 2018 of file dwarf2loc.c.

References check_pieced_value_bits(), and DWARF_VALUE_IMPLICIT_POINTER.

static int check_pieced_value_bits ( const struct value value,
int  bit_offset,
int  bit_length,
enum dwarf_value_location  check_for 
) [static]
static int check_pieced_value_invalid ( const struct value value) [static]
static int check_pieced_value_validity ( const struct value value,
int  bit_offset,
int  bit_length 
) [static]

Definition at line 1999 of file dwarf2loc.c.

References check_pieced_value_bits(), and DWARF_VALUE_MEMORY.

static void copy_bitwise ( gdb_byte dest,
unsigned int  dest_offset_bits,
const gdb_byte source,
unsigned int  source_offset_bits,
unsigned int  bit_count,
int  bits_big_endian 
) [static]

Definition at line 1547 of file dwarf2loc.c.

References extract_bits(), gdb_assert, and insert_bits().

Referenced by read_pieced_value(), and write_pieced_value().

static void* copy_pieced_value_closure ( const struct value v) [static]

Definition at line 2138 of file dwarf2loc.c.

References piece_closure::refc, and value_computed_closure().

static enum debug_loc_kind decode_debug_loc_addresses ( const gdb_byte loc_ptr,
const gdb_byte buf_end,
const gdb_byte **  new_ptr,
CORE_ADDR low,
CORE_ADDR high,
enum bfd_endian  byte_order,
unsigned int  addr_size,
int  signed_addr_p 
) [static]
static enum debug_loc_kind decode_debug_loc_dwo_addresses ( struct dwarf2_per_cu_data per_cu,
const gdb_byte loc_ptr,
const gdb_byte buf_end,
const gdb_byte **  new_ptr,
CORE_ADDR low,
CORE_ADDR high,
enum bfd_endian  byte_order 
) [static]
static const gdb_byte* disassemble_dwarf_expression ( struct ui_file stream,
struct gdbarch arch,
unsigned int  addr_size,
int  offset_size,
const gdb_byte start,
const gdb_byte data,
const gdb_byte end,
int  indent,
int  all,
struct dwarf2_per_cu_data per_cu 
) [static]
void dwarf2_compile_expr_to_ax ( struct agent_expr expr,
struct axs_value loc,
struct gdbarch arch,
unsigned int  addr_size,
const gdb_byte op_ptr,
const gdb_byte op_end,
struct dwarf2_per_cu_data per_cu 
)
struct value* dwarf2_evaluate_loc_desc ( struct type type,
struct frame_info frame,
const gdb_byte data,
size_t  size,
struct dwarf2_per_cu_data per_cu 
) [read]
static struct value * dwarf2_evaluate_loc_desc_full ( struct type type,
struct frame_info frame,
const gdb_byte data,
size_t  size,
struct dwarf2_per_cu_data per_cu,
LONGEST  byte_offset 
) [static, read]

Definition at line 2202 of file dwarf2loc.c.

References _, dwarf_expr_context::addr_size, allocate_computed_value(), allocate_optimized_out_value(), allocate_piece_closure(), allocate_value(), dwarf_expr_context::baton, value::contents, dwarf_expr_context::data, do_cleanups(), dwarf2_per_cu_addr_size(), dwarf2_per_cu_objfile(), dwarf2_per_cu_ref_addr_size(), dwarf2_per_cu_text_offset(), dwarf_expr_ctx_funcs, dwarf_expr_eval(), dwarf_expr_fetch(), dwarf_expr_fetch_address(), dwarf_expr_fetch_in_stack_memory(), DWARF_VALUE_IMPLICIT_POINTER, DWARF_VALUE_LITERAL, DWARF_VALUE_MEMORY, DWARF_VALUE_OPTIMIZED_OUT, DWARF_VALUE_REGISTER, DWARF_VALUE_STACK, gdb_exception::error, error(), exception_print(), dwarf_expr_baton::frame, dwarf_expr_context::funcs, gdb_stdout, dwarf_expr_context::gdbarch, gdbarch_byte_order(), gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), get_frame_id(), get_objfile_arch(), dwarf_expr_context::initialized, internal_error(), invalid_synthetic_pointer(), dwarf_expr_context::len, dwarf_expr_context::location, longest_to_int(), make_cleanup_free_dwarf_expr_context(), make_cleanup_value_free(), make_cleanup_value_free_to_mark(), mark_value_bytes_unavailable(), memcpy(), new_dwarf_expr_context(), NO_ENTRY_VALUE_ERROR, NOT_AVAILABLE_ERROR, dwarf_expr_context::num_pieces, dwarf_expr_context::offset, dwarf_expr_baton::per_cu, dwarf_expr_context::pieces, gdb_exception::reason, dwarf_expr_context::ref_addr_size, RETURN_MASK_ERROR, set_value_initialized(), set_value_offset(), set_value_stack(), dwarf_expr_piece::size, throw_exception(), TRY_CATCH, TYPE_LENGTH, ULONGEST, value_as_long(), value_at_lazy(), value_contents_all(), value_contents_raw(), VALUE_FRAME_ID, value_from_register(), value_incref(), value_mark(), value_optimized_out(), and value_type().

Referenced by dwarf2_evaluate_loc_desc(), and indirect_pieced_value().

const gdb_byte* dwarf2_find_location_expression ( struct dwarf2_loclist_baton baton,
size_t *  locexpr_length,
CORE_ADDR  pc 
)
static int dwarf2_loc_desc_needs_frame ( const gdb_byte data,
size_t  size,
struct dwarf2_per_cu_data per_cu 
) [static]
static struct value* dwarf_entry_parameter_to_value ( struct call_site_parameter *  parameter,
CORE_ADDR  deref_size,
struct type type,
struct frame_info caller_frame,
struct dwarf2_per_cu_data per_cu 
) [static, read]
static void dwarf_expr_dwarf_call ( struct dwarf_expr_context ctx,
cu_offset  die_offset 
) [static]
static void dwarf_expr_frame_base ( void *  baton,
const gdb_byte **  start,
size_t *  length 
) [static]
static void dwarf_expr_frame_base_1 ( struct symbol framefunc,
CORE_ADDR  pc,
const gdb_byte **  start,
size_t *  length 
) [static]
static CORE_ADDR dwarf_expr_frame_cfa ( void *  baton) [static]

Definition at line 431 of file dwarf2loc.c.

References dwarf2_frame_cfa(), and dwarf_expr_baton::frame.

static CORE_ADDR dwarf_expr_frame_pc ( void *  baton) [static]

Definition at line 442 of file dwarf2loc.c.

References dwarf_expr_baton::frame, and get_frame_address_in_block().

static CORE_ADDR dwarf_expr_get_addr_index ( void *  baton,
unsigned int  index 
) [static]

Definition at line 1224 of file dwarf2loc.c.

References dwarf2_read_addr_index(), and dwarf_expr_baton::per_cu.

static struct type* dwarf_expr_get_base_type ( struct dwarf_expr_context ctx,
cu_offset  die_offset 
) [static, read]
static void dwarf_expr_push_dwarf_reg_entry_value ( struct dwarf_expr_context ctx,
enum call_site_parameter_kind  kind,
union call_site_parameter_u  kind_u,
int  deref_size 
) [static]
static void dwarf_expr_read_mem ( void *  baton,
gdb_byte buf,
CORE_ADDR  addr,
size_t  len 
) [static]

Definition at line 332 of file dwarf2loc.c.

References read_memory().

static CORE_ADDR dwarf_expr_read_reg ( void *  baton,
int  dwarf_regnum 
) [static]
static struct call_site_parameter* dwarf_expr_reg_to_entry_parameter ( struct frame_info frame,
enum call_site_parameter_kind  kind,
union call_site_parameter_u  kind_u,
struct dwarf2_per_cu_data **  per_cu_return 
) [static, read]
static CORE_ADDR dwarf_expr_tls_address ( void *  baton,
CORE_ADDR  offset 
) [static]
static struct value* entry_data_value_coerce_ref ( const struct value value) [static, read]
static void* entry_data_value_copy_closure ( const struct value v) [static]

Definition at line 1252 of file dwarf2loc.c.

References value_computed_closure(), and value_incref().

static void entry_data_value_free_closure ( struct value v) [static]

Definition at line 1263 of file dwarf2loc.c.

References value_computed_closure(), and value_free().

static unsigned int extract_bits ( const gdb_byte **  source,
unsigned int source_offset_bits,
int  nbits,
int  bits_big_endian 
) [static]

Definition at line 1476 of file dwarf2loc.c.

References extract_bits_primitive(), and gdb_assert.

Referenced by copy_bitwise().

static unsigned int extract_bits_primitive ( const gdb_byte **  source,
unsigned int source_offset_bits,
int nbits,
int  bits_big_endian 
) [static]

Definition at line 1433 of file dwarf2loc.c.

References gdb_assert.

Referenced by extract_bits().

static void free_pieced_value_closure ( struct value v) [static]
static struct symbol* func_addr_to_tail_call_list ( struct gdbarch gdbarch,
CORE_ADDR  addr 
) [static, read]
static void func_verify_no_selftailcall ( struct gdbarch gdbarch,
CORE_ADDR  verify_addr 
) [static]
static CORE_ADDR get_ax_pc ( void *  baton) [static]

Definition at line 2655 of file dwarf2loc.c.

References agent_expr::scope.

Referenced by dwarf2_compile_expr_to_ax().

static CORE_ADDR get_frame_address_in_block_wrapper ( void *  baton) [static]

Definition at line 2028 of file dwarf2loc.c.

References get_frame_address_in_block().

Referenced by indirect_pieced_value().

static struct value* indirect_pieced_value ( struct value value) [static, read]
static void insert_bits ( unsigned int  datum,
gdb_byte dest,
unsigned int  dest_offset_bits,
int  nbits,
int  bits_big_endian 
) [static]

Definition at line 1512 of file dwarf2loc.c.

References gdb_assert.

Referenced by copy_bitwise().

static void invalid_synthetic_pointer ( void  ) [static]

Definition at line 95 of file dwarf2loc.c.

References _, and error().

Referenced by dwarf2_evaluate_loc_desc_full(), and indirect_pieced_value().

static void locexpr_describe_location ( struct symbol symbol,
CORE_ADDR  addr,
struct ui_file stream 
) [static]
static void locexpr_describe_location_1 ( struct symbol symbol,
CORE_ADDR  addr,
struct ui_file stream,
const gdb_byte data,
size_t  size,
struct objfile objfile,
unsigned int  addr_size,
int  offset_size,
struct dwarf2_per_cu_data per_cu 
) [static]
static const gdb_byte* locexpr_describe_location_piece ( struct symbol symbol,
struct ui_file stream,
CORE_ADDR  addr,
struct objfile objfile,
struct dwarf2_per_cu_data per_cu,
const gdb_byte data,
const gdb_byte end,
unsigned int  addr_size 
) [static]
static void locexpr_find_frame_base_location ( struct symbol framefunc,
CORE_ADDR  pc,
const gdb_byte **  start,
size_t *  length 
) [static]
static int locexpr_read_needs_frame ( struct symbol symbol) [static]
static struct value* locexpr_read_variable ( struct symbol symbol,
struct frame_info frame 
) [static, read]
static struct value* locexpr_read_variable_at_entry ( struct symbol symbol,
struct frame_info frame 
) [static, read]
static const char* locexpr_regname ( struct gdbarch gdbarch,
int  dwarf_regnum 
) [static]
static void locexpr_tracepoint_var_ref ( struct symbol symbol,
struct gdbarch gdbarch,
struct agent_expr ax,
struct axs_value value 
) [static]
static void loclist_describe_location ( struct symbol symbol,
CORE_ADDR  addr,
struct ui_file stream 
) [static]
static void loclist_find_frame_base_location ( struct symbol framefunc,
CORE_ADDR  pc,
const gdb_byte **  start,
size_t *  length 
) [static]

Definition at line 393 of file dwarf2loc.c.

References dwarf2_find_location_expression(), and SYMBOL_LOCATION_BATON.

static int loclist_read_needs_frame ( struct symbol symbol) [static]

Definition at line 4098 of file dwarf2loc.c.

static struct value* loclist_read_variable ( struct symbol symbol,
struct frame_info frame 
) [static, read]
static struct value* loclist_read_variable_at_entry ( struct symbol symbol,
struct frame_info frame 
) [static, read]
static void loclist_tracepoint_var_ref ( struct symbol symbol,
struct gdbarch gdbarch,
struct agent_expr ax,
struct axs_value value 
) [static]
static void needs_dwarf_reg_entry_value ( struct dwarf_expr_context ctx,
enum call_site_parameter_kind  kind,
union call_site_parameter_u  kind_u,
int  deref_size 
) [static]
static void needs_frame_dwarf_call ( struct dwarf_expr_context ctx,
cu_offset  die_offset 
) [static]
static void needs_frame_frame_base ( void *  baton,
const gdb_byte **  start,
size_t *  length 
) [static]

Definition at line 2447 of file dwarf2loc.c.

References needs_frame_baton::needs_frame.

static CORE_ADDR needs_frame_frame_cfa ( void *  baton) [static]

Definition at line 2461 of file dwarf2loc.c.

References needs_frame_baton::needs_frame.

static void needs_frame_read_mem ( void *  baton,
gdb_byte buf,
CORE_ADDR  addr,
size_t  len 
) [static]

Definition at line 2440 of file dwarf2loc.c.

References memset().

static CORE_ADDR needs_frame_read_reg ( void *  baton,
int  regnum 
) [static]

Definition at line 2430 of file dwarf2loc.c.

References needs_frame_baton::needs_frame.

static CORE_ADDR needs_frame_tls_address ( void *  baton,
CORE_ADDR  offset 
) [static]

Definition at line 2471 of file dwarf2loc.c.

References needs_frame_baton::needs_frame.

static CORE_ADDR needs_get_addr_index ( void *  baton,
unsigned int  index 
) [static]

Definition at line 2508 of file dwarf2loc.c.

static void per_cu_dwarf_call ( struct dwarf_expr_context ctx,
cu_offset  die_offset,
struct dwarf2_per_cu_data per_cu,
CORE_ADDR(*)(void *baton)  get_frame_pc,
void *  baton 
) [static]
static int piece_end_p ( const gdb_byte data,
const gdb_byte end 
) [static]

Definition at line 3353 of file dwarf2loc.c.

Referenced by locexpr_describe_location_piece().

static void read_pieced_value ( struct value v) [static]
static void show_entry_values_debug ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
) [static]

Definition at line 509 of file dwarf2loc.c.

References _, and fprintf_filtered().

Referenced by _initialize_dwarf2loc().

static void tailcall_dump ( struct gdbarch gdbarch,
const struct call_site call_site 
) [static]
static int translate_register ( struct gdbarch arch,
int  dwarf_reg 
) [static]

Definition at line 2601 of file dwarf2loc.c.

References _, error(), and gdbarch_dwarf2_reg_to_regnum().

Referenced by dwarf2_compile_expr_to_ax().

static void unimplemented ( unsigned int  op) [static]

Definition at line 2581 of file dwarf2loc.c.

References _, error(), and name.

Referenced by dwarf2_compile_expr_to_ax().

static struct value* value_of_dwarf_block_entry ( struct type type,
struct frame_info frame,
const gdb_byte block,
size_t  block_len 
) [static, read]
static struct value* value_of_dwarf_reg_entry ( struct type type,
struct frame_info frame,
enum call_site_parameter_kind  kind,
union call_site_parameter_u  kind_u 
) [static, read]
static void write_pieced_value ( struct value to,
struct value from 
) [static]

Variable Documentation

Referenced by initialize_all_files().

Definition at line 22300 of file dwarf2read.c.

Referenced by locexpr_describe_location_1().

Initial value:

Definition at line 384 of file dwarf2loc.c.

Initial value:

Definition at line 404 of file dwarf2loc.c.

Initial value:

Definition at line 1274 of file dwarf2loc.c.

unsigned int entry_values_debug = 0

Definition at line 504 of file dwarf2loc.c.

Referenced by dwarf2_tailcall_sniffer_first().

struct lval_funcs pieced_value_funcs [static]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines