GDB (xrefs)
Loading...
Searching...
No Matches
Enumerations | Functions | Variables
loc.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 "block.h"
#include "gdbcmd.h"
#include "complaints.h"
#include "dwarf2.h"
#include "dwarf2/expr.h"
#include "dwarf2/loc.h"
#include "dwarf2/read.h"
#include "dwarf2/leb.h"
#include "compile/compile.h"
#include "gdbsupport/selftest.h"
#include <algorithm>
#include <vector>
#include <unordered_set>
#include "gdbsupport/underlying.h"
#include "gdbsupport/byte-vector.h"

Go to the source code of this file.

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_OFFSET_PAIR = 4 , DEBUG_LOC_BUFFER_OVERFLOW = -1 , DEBUG_LOC_INVALID_ENTRY = -2
}
 

Functions

static struct valuedwarf2_evaluate_loc_desc_full (struct type *type, frame_info_ptr frame, const gdb_byte *data, size_t size, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, struct type *subobj_type, LONGEST subobj_byte_offset, bool as_lval=true)
 
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, unrelocated_addr *lowp, unrelocated_addr *highp, enum bfd_endian byte_order, unsigned int addr_size, int signed_addr_p)
 
static enum debug_loc_kind decode_debug_loclists_addresses (dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, const gdb_byte *loc_ptr, const gdb_byte *buf_end, const gdb_byte **new_ptr, unrelocated_addr *low, unrelocated_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 (dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, const gdb_byte *loc_ptr, const gdb_byte *buf_end, const gdb_byte **new_ptr, unrelocated_addr *low, unrelocated_addr *high, enum bfd_endian byte_order)
 
const gdb_byte * dwarf2_find_location_expression (const dwarf2_loclist_baton *baton, size_t *locexpr_length, const CORE_ADDR pc)
 
static void locexpr_find_frame_base_location (struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length)
 
static CORE_ADDR locexpr_get_frame_base (struct symbol *framefunc, frame_info_ptr frame)
 
static void loclist_find_frame_base_location (struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length)
 
static CORE_ADDR loclist_get_frame_base (struct symbol *framefunc, frame_info_ptr frame)
 
void func_get_frame_base_dwarf_block (struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length)
 
valuecompute_var_value (const char *name)
 
static void show_entry_values_debug (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
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)
 
static void chain_candidate (struct gdbarch *gdbarch, gdb::unique_xmalloc_ptr< struct call_site_chain > *resultp, const std::vector< struct call_site * > &chain)
 
static bool call_site_find_chain_2 (struct gdbarch *gdbarch, gdb::unique_xmalloc_ptr< struct call_site_chain > *resultp, std::vector< struct call_site * > &chain, std::unordered_set< CORE_ADDR > &addr_hash, struct call_site *call_site, CORE_ADDR callee_pc)
 
static gdb::unique_xmalloc_ptr< call_site_chaincall_site_find_chain_1 (struct gdbarch *gdbarch, CORE_ADDR caller_pc, CORE_ADDR callee_pc)
 
gdb::unique_xmalloc_ptr< 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)
 
struct call_site_parameterdwarf_expr_reg_to_entry_parameter (frame_info_ptr frame, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u, dwarf2_per_cu_data **per_cu_return, dwarf2_per_objfile **per_objfile_return)
 
static struct valuedwarf_entry_parameter_to_value (struct call_site_parameter *parameter, CORE_ADDR deref_size, struct type *type, frame_info_ptr caller_frame, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile)
 
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)
 
struct valuevalue_of_dwarf_reg_entry (struct type *type, frame_info_ptr frame, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u)
 
static struct valuevalue_of_dwarf_block_entry (struct type *type, frame_info_ptr frame, const gdb_byte *block, size_t block_len)
 
static struct valuefetch_const_value_from_synthetic_pointer (sect_offset die, LONGEST byte_offset, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, struct type *type)
 
struct valueindirect_synthetic_pointer (sect_offset die, LONGEST byte_offset, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, frame_info_ptr frame, struct type *type, bool resolve_abstract_p)
 
struct valuedwarf2_evaluate_loc_desc (struct type *type, frame_info_ptr frame, const gdb_byte *data, size_t size, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, bool as_lval)
 
static int dwarf2_locexpr_baton_eval (const struct dwarf2_locexpr_baton *dlbaton, frame_info_ptr frame, const struct property_addr_info *addr_stack, CORE_ADDR *valp, gdb::array_view< CORE_ADDR > push_values, bool *is_reference)
 
bool dwarf2_evaluate_property (const struct dynamic_prop *prop, frame_info_ptr frame, const struct property_addr_info *addr_stack, CORE_ADDR *value, gdb::array_view< CORE_ADDR > push_values)
 
void dwarf2_compile_property_to_c (string_file *stream, const char *result_name, struct gdbarch *gdbarch, std::vector< bool > &registers_used, const struct dynamic_prop *prop, CORE_ADDR pc, struct symbol *sym)
 
static enum symbol_needs_kind dwarf2_get_symbol_read_needs (gdb::array_view< const gdb_byte > expr, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, bfd_endian byte_order, int addr_size, int ref_addr_size, int depth=0)
 
static void ATTRIBUTE_NORETURN unimplemented (unsigned int op)
 
int dwarf_reg_to_regnum (struct gdbarch *arch, int dwarf_reg)
 
static void throw_bad_regnum_error (ULONGEST dwarf_reg)
 
int dwarf_reg_to_regnum_or_error (struct gdbarch *arch, ULONGEST dwarf_reg)
 
static void access_memory (struct gdbarch *arch, struct agent_expr *expr, ULONGEST nbits)
 
static void dwarf2_compile_expr_to_ax (struct agent_expr *expr, struct axs_value *loc, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile)
 
static struct valuelocexpr_read_variable (struct symbol *symbol, frame_info_ptr frame)
 
static struct valuelocexpr_read_variable_at_entry (struct symbol *symbol, frame_info_ptr frame)
 
static enum symbol_needs_kind locexpr_get_symbol_read_needs (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_byte * locexpr_describe_location_piece (struct symbol *symbol, struct ui_file *stream, CORE_ADDR addr, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, const gdb_byte *data, const gdb_byte *end, unsigned int addr_size)
 
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, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile)
 
static void show_dwarf_always_disassemble (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void locexpr_describe_location_1 (struct symbol *symbol, CORE_ADDR addr, struct ui_file *stream, const gdb_byte *data, size_t size, unsigned int addr_size, int offset_size, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile)
 
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 agent_expr *ax, struct axs_value *value)
 
static void locexpr_generate_c_location (struct symbol *sym, string_file *stream, struct gdbarch *gdbarch, std::vector< bool > &registers_used, CORE_ADDR pc, const char *result_name)
 
static struct valueloclist_read_variable (struct symbol *symbol, frame_info_ptr frame)
 
static struct valueloclist_read_variable_at_entry (struct symbol *symbol, frame_info_ptr frame)
 
static enum symbol_needs_kind loclist_symbol_needs (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 agent_expr *ax, struct axs_value *value)
 
static void loclist_generate_c_location (struct symbol *sym, string_file *stream, struct gdbarch *gdbarch, std::vector< bool > &registers_used, CORE_ADDR pc, const char *result_name)
 
void _initialize_dwarf2loc ()
 

Variables

const struct symbol_block_ops dwarf2_block_frame_base_locexpr_funcs
 
const struct symbol_block_ops dwarf2_block_frame_base_loclist_funcs
 
unsigned int entry_values_debug = 0
 
static const struct lval_funcs entry_data_value_funcs
 
static bool dwarf_always_disassemble
 
const struct symbol_computed_ops dwarf2_locexpr_funcs
 
const struct symbol_computed_ops dwarf2_loclist_funcs
 

Enumeration Type Documentation

◆ debug_loc_kind

Enumerator
DEBUG_LOC_END_OF_LIST 
DEBUG_LOC_BASE_ADDRESS 
DEBUG_LOC_START_END 
DEBUG_LOC_START_LENGTH 
DEBUG_LOC_OFFSET_PAIR 
DEBUG_LOC_BUFFER_OVERFLOW 
DEBUG_LOC_INVALID_ENTRY 

Definition at line 60 of file loc.c.

Function Documentation

◆ _initialize_dwarf2loc()

void _initialize_dwarf2loc ( )

Definition at line 4122 of file loc.c.

Referenced by initialize_all_files().

◆ access_memory()

static void access_memory ( struct gdbarch * arch,
struct agent_expr * expr,
ULONGEST nbits )
static

Definition at line 2325 of file loc.c.

References ax_const_l(), ax_simple(), ax_trace_quick(), ax_zero_ext(), and gdbarch_byte_order().

Referenced by dwarf2_compile_expr_to_ax().

◆ call_site_find_chain()

gdb::unique_xmalloc_ptr< call_site_chain > call_site_find_chain ( struct gdbarch * gdbarch,
CORE_ADDR caller_pc,
CORE_ADDR callee_pc )

◆ call_site_find_chain_1()

static gdb::unique_xmalloc_ptr< call_site_chain > call_site_find_chain_1 ( struct gdbarch * gdbarch,
CORE_ADDR caller_pc,
CORE_ADDR callee_pc )
static

◆ call_site_find_chain_2()

static bool call_site_find_chain_2 ( struct gdbarch * gdbarch,
gdb::unique_xmalloc_ptr< struct call_site_chain > * resultp,
std::vector< struct call_site * > & chain,
std::unordered_set< CORE_ADDR > & addr_hash,
struct call_site * call_site,
CORE_ADDR callee_pc )
static

◆ call_site_parameter_matches()

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

◆ chain_candidate()

static void chain_candidate ( struct gdbarch * gdbarch,
gdb::unique_xmalloc_ptr< struct call_site_chain > * resultp,
const std::vector< struct call_site * > & chain )
static

◆ compute_var_value()

value * compute_var_value ( const char * name)

◆ decode_debug_loc_addresses()

static enum debug_loc_kind decode_debug_loc_addresses ( const gdb_byte * loc_ptr,
const gdb_byte * buf_end,
const gdb_byte ** new_ptr,
unrelocated_addr * lowp,
unrelocated_addr * highp,
enum bfd_endian byte_order,
unsigned int addr_size,
int signed_addr_p )
static

◆ decode_debug_loc_dwo_addresses()

static enum debug_loc_kind decode_debug_loc_dwo_addresses ( dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile,
const gdb_byte * loc_ptr,
const gdb_byte * buf_end,
const gdb_byte ** new_ptr,
unrelocated_addr * low,
unrelocated_addr * high,
enum bfd_endian byte_order )
static

◆ decode_debug_loclists_addresses()

static enum debug_loc_kind decode_debug_loclists_addresses ( dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile,
const gdb_byte * loc_ptr,
const gdb_byte * buf_end,
const gdb_byte ** new_ptr,
unrelocated_addr * low,
unrelocated_addr * high,
enum bfd_endian byte_order,
unsigned int addr_size,
int signed_addr_p )
static

◆ disassemble_dwarf_expression()

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,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile )
static

◆ dwarf2_compile_expr_to_ax()

static void dwarf2_compile_expr_to_ax ( struct agent_expr * expr,
struct axs_value * loc,
unsigned int addr_size,
const gdb_byte * op_ptr,
const gdb_byte * op_end,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile )
static

◆ dwarf2_compile_property_to_c()

void dwarf2_compile_property_to_c ( string_file * stream,
const char * result_name,
struct gdbarch * gdbarch,
std::vector< bool > & registers_used,
const struct dynamic_prop * prop,
CORE_ADDR pc,
struct symbol * sym )

◆ dwarf2_evaluate_loc_desc()

struct value * dwarf2_evaluate_loc_desc ( struct type * type,
frame_info_ptr frame,
const gdb_byte * data,
size_t size,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile,
bool as_lval )

◆ dwarf2_evaluate_loc_desc_full()

static struct value * dwarf2_evaluate_loc_desc_full ( struct type * type,
frame_info_ptr frame,
const gdb_byte * data,
size_t size,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile,
struct type * subobj_type,
LONGEST subobj_byte_offset,
bool as_lval = true )
static

◆ dwarf2_evaluate_property()

bool dwarf2_evaluate_property ( const struct dynamic_prop * prop,
frame_info_ptr frame,
const struct property_addr_info * addr_stack,
CORE_ADDR * value,
gdb::array_view< CORE_ADDR > push_values )

◆ dwarf2_find_location_expression()

const gdb_byte * dwarf2_find_location_expression ( const dwarf2_loclist_baton * baton,
size_t * locexpr_length,
const CORE_ADDR pc )

◆ dwarf2_get_symbol_read_needs()

static enum symbol_needs_kind dwarf2_get_symbol_read_needs ( gdb::array_view< const gdb_byte > expr,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile,
bfd_endian byte_order,
int addr_size,
int ref_addr_size,
int depth = 0 )
static

◆ dwarf2_locexpr_baton_eval()

static int dwarf2_locexpr_baton_eval ( const struct dwarf2_locexpr_baton * dlbaton,
frame_info_ptr frame,
const struct property_addr_info * addr_stack,
CORE_ADDR * valp,
gdb::array_view< CORE_ADDR > push_values,
bool * is_reference )
static

◆ dwarf_entry_parameter_to_value()

static struct value * dwarf_entry_parameter_to_value ( struct call_site_parameter * parameter,
CORE_ADDR deref_size,
struct type * type,
frame_info_ptr caller_frame,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile )
static

◆ dwarf_expr_reg_to_entry_parameter()

struct call_site_parameter * dwarf_expr_reg_to_entry_parameter ( frame_info_ptr frame,
enum call_site_parameter_kind kind,
union call_site_parameter_u kind_u,
dwarf2_per_cu_data ** per_cu_return,
dwarf2_per_objfile ** per_objfile_return )

◆ dwarf_reg_to_regnum()

int dwarf_reg_to_regnum ( struct gdbarch * arch,
int dwarf_reg )

◆ dwarf_reg_to_regnum_or_error()

int dwarf_reg_to_regnum_or_error ( struct gdbarch * arch,
ULONGEST dwarf_reg )

◆ entry_data_value_coerce_ref()

static struct value * entry_data_value_coerce_ref ( const struct value * value)
static

◆ entry_data_value_copy_closure()

static void * entry_data_value_copy_closure ( const struct value * v)
static

Definition at line 1306 of file loc.c.

References value::computed_closure(), and value::incref().

◆ entry_data_value_free_closure()

static void entry_data_value_free_closure ( struct value * v)
static

Definition at line 1317 of file loc.c.

References value::computed_closure(), and value::decref().

◆ fetch_const_value_from_synthetic_pointer()

static struct value * fetch_const_value_from_synthetic_pointer ( sect_offset die,
LONGEST byte_offset,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile,
struct type * type )
static

◆ func_addr_to_tail_call_list()

static struct symbol * func_addr_to_tail_call_list ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

◆ func_get_frame_base_dwarf_block()

void func_get_frame_base_dwarf_block ( struct symbol * framefunc,
CORE_ADDR pc,
const gdb_byte ** start,
size_t * length )

◆ func_verify_no_selftailcall()

static void func_verify_no_selftailcall ( struct gdbarch * gdbarch,
CORE_ADDR verify_addr )
static

◆ indirect_synthetic_pointer()

struct value * indirect_synthetic_pointer ( sect_offset die,
LONGEST byte_offset,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile,
frame_info_ptr frame,
struct type * type,
bool resolve_abstract_p )

◆ invalid_synthetic_pointer()

void invalid_synthetic_pointer ( void )

◆ locexpr_describe_location()

static void locexpr_describe_location ( struct symbol * symbol,
CORE_ADDR addr,
struct ui_file * stream )
static

◆ locexpr_describe_location_1()

static void locexpr_describe_location_1 ( struct symbol * symbol,
CORE_ADDR addr,
struct ui_file * stream,
const gdb_byte * data,
size_t size,
unsigned int addr_size,
int offset_size,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile )
static

◆ locexpr_describe_location_piece()

static const gdb_byte * locexpr_describe_location_piece ( struct symbol * symbol,
struct ui_file * stream,
CORE_ADDR addr,
dwarf2_per_cu_data * per_cu,
dwarf2_per_objfile * per_objfile,
const gdb_byte * data,
const gdb_byte * end,
unsigned int addr_size )
static

◆ locexpr_find_frame_base_location()

static void locexpr_find_frame_base_location ( struct symbol * framefunc,
CORE_ADDR pc,
const gdb_byte ** start,
size_t * length )
static

◆ locexpr_generate_c_location()

static void locexpr_generate_c_location ( struct symbol * sym,
string_file * stream,
struct gdbarch * gdbarch,
std::vector< bool > & registers_used,
CORE_ADDR pc,
const char * result_name )
static

◆ locexpr_get_frame_base()

static CORE_ADDR locexpr_get_frame_base ( struct symbol * framefunc,
frame_info_ptr frame )
static

◆ locexpr_get_symbol_read_needs()

static enum symbol_needs_kind locexpr_get_symbol_read_needs ( struct symbol * symbol)
static

◆ locexpr_read_variable()

static struct value * locexpr_read_variable ( struct symbol * symbol,
frame_info_ptr frame )
static

◆ locexpr_read_variable_at_entry()

static struct value * locexpr_read_variable_at_entry ( struct symbol * symbol,
frame_info_ptr frame )
static

◆ locexpr_regname()

static const char * locexpr_regname ( struct gdbarch * gdbarch,
int dwarf_regnum )
static

◆ locexpr_tracepoint_var_ref()

static void locexpr_tracepoint_var_ref ( struct symbol * symbol,
struct agent_expr * ax,
struct axs_value * value )
static

◆ loclist_describe_location()

static void loclist_describe_location ( struct symbol * symbol,
CORE_ADDR addr,
struct ui_file * stream )
static

◆ loclist_find_frame_base_location()

static void loclist_find_frame_base_location ( struct symbol * framefunc,
CORE_ADDR pc,
const gdb_byte ** start,
size_t * length )
static

Definition at line 549 of file loc.c.

References dwarf2_find_location_expression(), and SYMBOL_LOCATION_BATON.

◆ loclist_generate_c_location()

static void loclist_generate_c_location ( struct symbol * sym,
string_file * stream,
struct gdbarch * gdbarch,
std::vector< bool > & registers_used,
CORE_ADDR pc,
const char * result_name )
static

◆ loclist_get_frame_base()

static CORE_ADDR loclist_get_frame_base ( struct symbol * framefunc,
frame_info_ptr frame )
static

◆ loclist_read_variable()

static struct value * loclist_read_variable ( struct symbol * symbol,
frame_info_ptr frame )
static

◆ loclist_read_variable_at_entry()

static struct value * loclist_read_variable_at_entry ( struct symbol * symbol,
frame_info_ptr frame )
static

◆ loclist_symbol_needs()

static enum symbol_needs_kind loclist_symbol_needs ( struct symbol * symbol)
static

Definition at line 3934 of file loc.c.

References SYMBOL_NEEDS_FRAME.

◆ loclist_tracepoint_var_ref()

static void loclist_tracepoint_var_ref ( struct symbol * symbol,
struct agent_expr * ax,
struct axs_value * value )
static

◆ piece_end_p()

static int piece_end_p ( const gdb_byte * data,
const gdb_byte * end )
static

Definition at line 3105 of file loc.c.

References dwarf2_locexpr_baton::data.

Referenced by locexpr_describe_location_piece().

◆ show_dwarf_always_disassemble()

static void show_dwarf_always_disassemble ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 3705 of file loc.c.

References gdb_printf().

◆ show_entry_values_debug()

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 641 of file loc.c.

References gdb_printf().

◆ tailcall_dump()

static void tailcall_dump ( struct gdbarch * gdbarch,
const struct call_site * call_site )
static

◆ throw_bad_regnum_error()

static void throw_bad_regnum_error ( ULONGEST dwarf_reg)
static

Definition at line 2290 of file loc.c.

Referenced by dwarf_reg_to_regnum_or_error().

◆ unimplemented()

static void ATTRIBUTE_NORETURN unimplemented ( unsigned int op)
static

Definition at line 2255 of file loc.c.

References name.

Referenced by dwarf2_compile_expr_to_ax().

◆ value_of_dwarf_block_entry()

static struct value * value_of_dwarf_block_entry ( struct type * type,
frame_info_ptr frame,
const gdb_byte * block,
size_t block_len )
static

◆ value_of_dwarf_reg_entry()

struct value * value_of_dwarf_reg_entry ( struct type * type,
frame_info_ptr frame,
enum call_site_parameter_kind kind,
union call_site_parameter_u kind_u )

Variable Documentation

◆ dwarf2_block_frame_base_locexpr_funcs

const struct symbol_block_ops dwarf2_block_frame_base_locexpr_funcs
Initial value:
=
{
}
static void locexpr_find_frame_base_location(struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length)
Definition loc.c:491
static CORE_ADDR locexpr_get_frame_base(struct symbol *framefunc, frame_info_ptr frame)
Definition loc.c:505

Definition at line 539 of file loc.c.

◆ dwarf2_block_frame_base_loclist_funcs

const struct symbol_block_ops dwarf2_block_frame_base_loclist_funcs
Initial value:
=
{
}
static CORE_ADDR loclist_get_frame_base(struct symbol *framefunc, frame_info_ptr frame)
Definition loc.c:562
static void loclist_find_frame_base_location(struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length)
Definition loc.c:549

Definition at line 596 of file loc.c.

◆ dwarf2_locexpr_funcs

const struct symbol_computed_ops dwarf2_locexpr_funcs
Initial value:
= {
0,
}
static enum symbol_needs_kind locexpr_get_symbol_read_needs(struct symbol *symbol)
Definition loc.c:3085
static struct value * locexpr_read_variable_at_entry(struct symbol *symbol, frame_info_ptr frame)
Definition loc.c:3072
static void locexpr_describe_location(struct symbol *symbol, CORE_ADDR addr, struct ui_file *stream)
Definition loc.c:3814
static void locexpr_tracepoint_var_ref(struct symbol *symbol, struct agent_expr *ax, struct axs_value *value)
Definition loc.c:3832
static void locexpr_generate_c_location(struct symbol *sym, string_file *stream, struct gdbarch *gdbarch, std::vector< bool > &registers_used, CORE_ADDR pc, const char *result_name)
Definition loc.c:3850
static struct value * locexpr_read_variable(struct symbol *symbol, frame_info_ptr frame)
Definition loc.c:3054

Definition at line 3870 of file loc.c.

◆ dwarf2_loclist_funcs

const struct symbol_computed_ops dwarf2_loclist_funcs
Initial value:
= {
1,
}
static struct value * loclist_read_variable(struct symbol *symbol, frame_info_ptr frame)
Definition loc.c:3887
static void loclist_generate_c_location(struct symbol *sym, string_file *stream, struct gdbarch *gdbarch, std::vector< bool > &registers_used, CORE_ADDR pc, const char *result_name)
Definition loc.c:4086
static struct value * loclist_read_variable_at_entry(struct symbol *symbol, frame_info_ptr frame)
Definition loc.c:3912
static void loclist_describe_location(struct symbol *symbol, CORE_ADDR addr, struct ui_file *stream)
Definition loc.c:3950
static void loclist_tracepoint_var_ref(struct symbol *symbol, struct agent_expr *ax, struct axs_value *value)
Definition loc.c:4066
static enum symbol_needs_kind loclist_symbol_needs(struct symbol *symbol)
Definition loc.c:3934

Definition at line 4110 of file loc.c.

◆ dwarf_always_disassemble

bool dwarf_always_disassemble
static

Definition at line 3702 of file loc.c.

Referenced by locexpr_describe_location_1().

◆ entry_data_value_funcs

const struct lval_funcs entry_data_value_funcs
static
Initial value:
=
{
NULL,
NULL,
nullptr,
NULL,
NULL,
}
static struct value * entry_data_value_coerce_ref(const struct value *value)
Definition loc.c:1290
static void entry_data_value_free_closure(struct value *v)
Definition loc.c:1317
static void * entry_data_value_copy_closure(const struct value *v)
Definition loc.c:1306

Definition at line 1328 of file loc.c.

Referenced by value_of_dwarf_reg_entry().

◆ entry_values_debug

unsigned int entry_values_debug = 0