GDB (xrefs)
Classes | Enumerations | Functions
/tmp/gdb-7.10/gdb/dwarf2expr.h File Reference
#include "leb128.h"
#include "gdbtypes.h"

Go to the source code of this file.

Classes

struct  dwarf_expr_context_funcs
 
struct  dwarf_stack_value
 
struct  dwarf_expr_context
 
struct  dwarf_expr_piece
 

Enumerations

enum  dwarf_value_location {
  DWARF_VALUE_MEMORY, DWARF_VALUE_REGISTER, DWARF_VALUE_STACK, DWARF_VALUE_LITERAL,
  DWARF_VALUE_OPTIMIZED_OUT, DWARF_VALUE_IMPLICIT_POINTER
}
 

Functions

struct dwarf_expr_contextnew_dwarf_expr_context (void)
 
void free_dwarf_expr_context (struct dwarf_expr_context *ctx)
 
struct cleanupmake_cleanup_free_dwarf_expr_context (struct dwarf_expr_context *ctx)
 
void dwarf_expr_push_address (struct dwarf_expr_context *ctx, CORE_ADDR value, int in_stack_memory)
 
void dwarf_expr_eval (struct dwarf_expr_context *ctx, const gdb_byte *addr, size_t len)
 
struct valuedwarf_expr_fetch (struct dwarf_expr_context *ctx, int n)
 
CORE_ADDR dwarf_expr_fetch_address (struct dwarf_expr_context *ctx, int n)
 
int dwarf_expr_fetch_in_stack_memory (struct dwarf_expr_context *ctx, int n)
 
void dwarf_expr_require_composition (const gdb_byte *, const gdb_byte *, const char *)
 
void ctx_no_get_frame_base (void *baton, const gdb_byte **start, size_t *length)
 
CORE_ADDR ctx_no_get_frame_cfa (void *baton)
 
CORE_ADDR ctx_no_get_frame_pc (void *baton)
 
CORE_ADDR ctx_no_get_tls_address (void *baton, CORE_ADDR offset)
 
void ctx_no_dwarf_call (struct dwarf_expr_context *ctx, cu_offset die_offset)
 
struct typectx_no_get_base_type (struct dwarf_expr_context *ctx, cu_offset die)
 
void ctx_no_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)
 
CORE_ADDR ctx_no_get_addr_index (void *baton, unsigned int index)
 
int dwarf_block_to_dwarf_reg (const gdb_byte *buf, const gdb_byte *buf_end)
 
int dwarf_block_to_dwarf_reg_deref (const gdb_byte *buf, const gdb_byte *buf_end, CORE_ADDR *deref_size_return)
 
int dwarf_block_to_fb_offset (const gdb_byte *buf, const gdb_byte *buf_end, CORE_ADDR *fb_offset_return)
 
int dwarf_block_to_sp_offset (struct gdbarch *gdbarch, const gdb_byte *buf, const gdb_byte *buf_end, CORE_ADDR *sp_offset_return)
 
static const gdb_bytegdb_read_uleb128 (const gdb_byte *buf, const gdb_byte *buf_end, uint64_t *r)
 
static const gdb_bytegdb_read_sleb128 (const gdb_byte *buf, const gdb_byte *buf_end, int64_t *r)
 
static const gdb_bytegdb_skip_leb128 (const gdb_byte *buf, const gdb_byte *buf_end)
 
const gdb_bytesafe_read_uleb128 (const gdb_byte *buf, const gdb_byte *buf_end, uint64_t *r)
 
const gdb_bytesafe_read_sleb128 (const gdb_byte *buf, const gdb_byte *buf_end, int64_t *r)
 
const gdb_bytesafe_skip_leb128 (const gdb_byte *buf, const gdb_byte *buf_end)
 

Enumeration Type Documentation

Enumerator
DWARF_VALUE_MEMORY 
DWARF_VALUE_REGISTER 
DWARF_VALUE_STACK 
DWARF_VALUE_LITERAL 
DWARF_VALUE_OPTIMIZED_OUT 
DWARF_VALUE_IMPLICIT_POINTER 

Definition at line 92 of file dwarf2expr.h.

Function Documentation

void ctx_no_dwarf_call ( struct dwarf_expr_context ctx,
cu_offset  die_offset 
)

Definition at line 1543 of file dwarf2expr.c.

References _, and error().

CORE_ADDR ctx_no_get_addr_index ( void *  baton,
unsigned int  index 
)

Definition at line 1572 of file dwarf2expr.c.

References _, and error().

struct type* ctx_no_get_base_type ( struct dwarf_expr_context ctx,
cu_offset  die 
)

Definition at line 1551 of file dwarf2expr.c.

References _, and error().

void ctx_no_get_frame_base ( void *  baton,
const gdb_byte **  start,
size_t *  length 
)

Definition at line 1511 of file dwarf2expr.c.

References _, and error().

CORE_ADDR ctx_no_get_frame_cfa ( void *  baton)

Definition at line 1519 of file dwarf2expr.c.

References _, and error().

CORE_ADDR ctx_no_get_frame_pc ( void *  baton)

Definition at line 1527 of file dwarf2expr.c.

References _, and error().

CORE_ADDR ctx_no_get_tls_address ( void *  baton,
CORE_ADDR  offset 
)

Definition at line 1535 of file dwarf2expr.c.

References _, and error().

void ctx_no_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 
)

Definition at line 1560 of file dwarf2expr.c.

References _, and internal_error().

int dwarf_block_to_dwarf_reg ( const gdb_byte buf,
const gdb_byte buf_end 
)
int dwarf_block_to_dwarf_reg_deref ( const gdb_byte buf,
const gdb_byte buf_end,
CORE_ADDR deref_size_return 
)

Definition at line 507 of file dwarf2expr.c.

References gdb_read_sleb128(), gdb_read_uleb128(), and offset.

Referenced by execute_stack_op().

int dwarf_block_to_fb_offset ( const gdb_byte buf,
const gdb_byte buf_end,
CORE_ADDR fb_offset_return 
)

Definition at line 566 of file dwarf2expr.c.

References gdb_read_sleb128().

Referenced by value_of_dwarf_block_entry().

int dwarf_block_to_sp_offset ( struct gdbarch gdbarch,
const gdb_byte buf,
const gdb_byte buf_end,
CORE_ADDR sp_offset_return 
)
void dwarf_expr_eval ( struct dwarf_expr_context ctx,
const gdb_byte addr,
size_t  len 
)
struct value* dwarf_expr_fetch ( struct dwarf_expr_context ctx,
int  n 
)
CORE_ADDR dwarf_expr_fetch_address ( struct dwarf_expr_context ctx,
int  n 
)
int dwarf_expr_fetch_in_stack_memory ( struct dwarf_expr_context ctx,
int  n 
)
void dwarf_expr_push_address ( struct dwarf_expr_context ctx,
CORE_ADDR  value,
int  in_stack_memory 
)
void dwarf_expr_require_composition ( const gdb_byte ,
const gdb_byte ,
const char *   
)

Definition at line 408 of file dwarf2expr.c.

References _, and error().

Referenced by do_compile_dwarf_expr_to_c(), dwarf2_compile_expr_to_ax(), and execute_stack_op().

void free_dwarf_expr_context ( struct dwarf_expr_context ctx)
static const gdb_byte* gdb_read_sleb128 ( const gdb_byte buf,
const gdb_byte buf_end,
int64_t *  r 
)
inlinestatic
static const gdb_byte* gdb_read_uleb128 ( const gdb_byte buf,
const gdb_byte buf_end,
uint64_t *  r 
)
inlinestatic
static const gdb_byte* gdb_skip_leb128 ( const gdb_byte buf,
const gdb_byte buf_end 
)
inlinestatic

Definition at line 325 of file dwarf2expr.h.

Referenced by dwarf_block_to_dwarf_reg(), safe_skip_leb128(), and skip_form_bytes().

struct cleanup* make_cleanup_free_dwarf_expr_context ( struct dwarf_expr_context ctx)
struct dwarf_expr_context* new_dwarf_expr_context ( void  )
const gdb_byte* safe_read_sleb128 ( const gdb_byte buf,
const gdb_byte buf_end,
int64_t *  r 
)
const gdb_byte* safe_read_uleb128 ( const gdb_byte buf,
const gdb_byte buf_end,
uint64_t *  r 
)
const gdb_byte* safe_skip_leb128 ( const gdb_byte buf,
const gdb_byte buf_end 
)

Definition at line 395 of file dwarf2expr.c.

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

Referenced by skip_one_die().