GDB (xrefs)

Classes | Functions | Variables
/tmp/gdb-8.1/gdb/dwarf2expr.c File Reference
`#include "defs.h"`
`#include "symtab.h"`
`#include "gdbtypes.h"`
`#include "value.h"`
`#include "gdbcore.h"`
`#include "dwarf2.h"`
`#include "dwarf2expr.h"`
`#include "dwarf2loc.h"`
`#include "common/underlying.h"`

Go to the source code of this file.

## Classes
struct | dwarf_gdbarch_types

## Functions
static void * | dwarf_gdbarch_types_init (struct gdbarch *gdbarch)
static void | dwarf_require_integral (struct type *type)
static struct type * | get_unsigned_type (struct gdbarch *gdbarch, struct type *type)
static struct type * | get_signed_type (struct gdbarch *gdbarch, struct type *type)
const gdb_byte * | safe_read_uleb128 (const gdb_byte *buf, const gdb_byte *buf_end, uint64_t *r)
const gdb_byte * | safe_read_sleb128 (const gdb_byte *buf, const gdb_byte *buf_end, int64_t *r)
const gdb_byte * | safe_skip_leb128 (const gdb_byte *buf, const gdb_byte *buf_end)
void | dwarf_expr_require_composition (const gdb_byte *op_ptr, const gdb_byte *op_end, const char *op_name)
static int | base_types_equal_p (struct type *t1, struct type *t2)
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)
void | _initialize_dwarf2expr (void)

## Variables
static struct gdbarch_data * | dwarf_arch_cookie

## Function Documentation

## ◆ _initialize_dwarf2expr()

void _initialize_dwarf2expr | ( | void |  | ) |

Definition at line 1410 of file dwarf2expr.c.

References dwarf_gdbarch_types_init(), and gdbarch_data_register_post_init().

## ◆ base_types_equal_p()

static int base_types_equal_p | ( | struct type * | t1,
|  | struct type * | t2
| ) |  |
| static

Definition at line 363 of file dwarf2expr.c.

References TYPE_CODE, TYPE_LENGTH, and TYPE_UNSIGNED.

Referenced by dwarf_expr_context::execute_stack_op().

## ◆ dwarf_block_to_dwarf_reg()

int dwarf_block_to_dwarf_reg | ( | const gdb_byte * | buf,
|  | const gdb_byte * | buf_end
| ) |  |

Definition at line 376 of file dwarf2expr.c.

References gdb_read_uleb128(), and gdb_skip_leb128().

Referenced by dwarf_expr_context::execute_stack_op(), read_call_site_scope(), and value_of_dwarf_block_entry().

## ◆ dwarf_block_to_dwarf_reg_deref()

int dwarf_block_to_dwarf_reg_deref | ( | const gdb_byte * | buf,
|  | const gdb_byte * | buf_end,
|  | CORE_ADDR * | deref_size_return
| ) |  |

Definition at line 419 of file dwarf2expr.c.

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

Referenced by dwarf_expr_context::execute_stack_op().

## ◆ dwarf_block_to_fb_offset()

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

Definition at line 478 of file dwarf2expr.c.

References gdb_read_sleb128().

Referenced by value_of_dwarf_block_entry().

## ◆ dwarf_block_to_sp_offset()

int dwarf_block_to_sp_offset | ( | struct gdbarch * | gdbarch,
|  | const gdb_byte * | buf,
|  | const gdb_byte * | buf_end,
|  | CORE_ADDR * | sp_offset_return
| ) |  |

Definition at line 505 of file dwarf2expr.c.

References dwarf_reg_to_regnum(), gdb_read_sleb128(), gdb_read_uleb128(), and gdbarch_sp_regnum().

Referenced by read_call_site_scope().

## ◆ dwarf_expr_require_composition()

void dwarf_expr_require_composition | ( | const gdb_byte * | op_ptr,
|  | const gdb_byte * | op_end,
|  | const char * | op_name
| ) |  |

Definition at line 347 of file dwarf2expr.c.

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

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

## ◆ dwarf_gdbarch_types_init()

static void* dwarf_gdbarch_types_init | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 47 of file dwarf2expr.c.

References GDBARCH_OBSTACK_ZALLOC.

Referenced by _initialize_dwarf2expr().

## ◆ dwarf_require_integral()

static void dwarf_require_integral | ( | struct type * | type | ) |
| static

Definition at line 146 of file dwarf2expr.c.

References _, error(), TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, and TYPE_CODE_INT.

Referenced by dwarf_expr_context::execute_stack_op(), and dwarf_expr_context::fetch_address().

## ◆ get_signed_type()

static struct type* get_signed_type | ( | struct gdbarch * | gdbarch,
|  | struct type * | type
| ) |  |
| static

Definition at line 180 of file dwarf2expr.c.

References _, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type::builtin_int8, builtin_type(), error(), and TYPE_LENGTH.

Referenced by dwarf_expr_context::execute_stack_op().

## ◆ get_unsigned_type()

static struct type* get_unsigned_type | ( | struct gdbarch * | gdbarch,
|  | struct type * | type
| ) |  |
| static

Definition at line 158 of file dwarf2expr.c.

References _, builtin_type(), builtin_type::builtin_uint16, builtin_type::builtin_uint32, builtin_type::builtin_uint64, builtin_type::builtin_uint8, error(), and TYPE_LENGTH.

Referenced by dwarf_expr_context::execute_stack_op(), and dwarf_expr_context::fetch_address().

## ◆ safe_read_sleb128()

const gdb_byte* safe_read_sleb128 | ( | const gdb_byte * | buf,
|  | const gdb_byte * | buf_end,
|  | int64_t * | r
| ) |  |

Definition at line 323 of file dwarf2expr.c.

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

Referenced by compute_stack_depth_worker(), disassemble_dwarf_expression(), do_compile_dwarf_expr_to_c(), dwarf2_compile_expr_to_ax(), execute_cfa_program(), dwarf_expr_context::execute_stack_op(), locexpr_describe_location_piece(), and read_encoded_value().

## ◆ safe_read_uleb128()

const gdb_byte* safe_read_uleb128 | ( | const gdb_byte * | buf,
|  | const gdb_byte * | buf_end,
|  | uint64_t * | r
| ) |  |

Definition at line 311 of file dwarf2expr.c.

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

Referenced by compute_stack_depth_worker(), disassemble_dwarf_expression(), do_compile_dwarf_expr_to_c(), dwarf2_compile_expr_to_ax(), execute_cfa_program(), dwarf_expr_context::execute_stack_op(), locexpr_describe_location_1(), locexpr_describe_location_piece(), and read_encoded_value().

## ◆ safe_skip_leb128()

const gdb_byte* safe_skip_leb128 | ( | const gdb_byte * | buf,
|  | const gdb_byte * | buf_end
| ) |  |

Definition at line 333 of file dwarf2expr.c.

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

Referenced by skip_one_die().

## Variable Documentation

## ◆ dwarf_arch_cookie

struct gdbarch_data* dwarf_arch_cookie
| static

Definition at line 34 of file dwarf2expr.c.

Referenced by dwarf_expr_context::address_type().