GDB (xrefs)
|
#include "defs.h"
#include "dwarf2.h"
#include "objfiles.h"
#include "dwarf2/expr.h"
#include "dwarf2/loc.h"
#include "dwarf2/read.h"
#include "ui-file.h"
#include "utils.h"
#include "compile-internal.h"
#include "compile-c.h"
#include "compile.h"
#include "block.h"
#include "dwarf2/frame.h"
#include "gdbsupport/gdb_vecs.h"
#include "value.h"
#include "gdbarch.h"
Go to the source code of this file.
Classes | |
struct | insn_info |
Macros | |
#define | SET_CHECK_DEPTH(WHERE) |
#define | GCC_UINTPTR "__gdb_uintptr" |
#define | GCC_INTPTR "__gdb_intptr" |
#define | BINARY(OP) |
#define | COMPARE(OP) |
Functions | |
static void | compute_stack_depth_worker (int start, int *need_tempvar, std::vector< struct insn_info > *info, std::vector< int > *to_do, enum bfd_endian byte_order, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end) |
static int | compute_stack_depth (enum bfd_endian byte_order, unsigned int addr_size, int *need_tempvar, int *is_tls, const gdb_byte *op_ptr, const gdb_byte *op_end, int initial_depth, std::vector< struct insn_info > *info) |
static void | push (int indent, string_file *stream, ULONGEST l) |
static void | pushf (int indent, string_file *stream, const char *format,...) ATTRIBUTE_PRINTF(3 |
static void | unary (int indent, string_file *stream, const char *format,...) ATTRIBUTE_PRINTF(3 |
static void | binary (int indent, string_file *stream, const char *format,...) ATTRIBUTE_PRINTF(3 |
static void | print_label (string_file *stream, unsigned int scope, int target) |
static void | note_register (int regnum, std::vector< bool > ®isters_used) |
static void | pushf_register_address (int indent, string_file *stream, std::vector< bool > ®isters_used, struct gdbarch *gdbarch, int regnum) |
static void | pushf_register (int indent, string_file *stream, std::vector< bool > ®isters_used, struct gdbarch *gdbarch, int regnum, uint64_t offset) |
static void | do_compile_dwarf_expr_to_c (int indent, string_file *stream, const char *type_name, const char *result_name, struct symbol *sym, CORE_ADDR pc, struct gdbarch *arch, std::vector< bool > ®isters_used, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, CORE_ADDR *initial, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile) |
void | compile_dwarf_expr_to_c (string_file *stream, const char *result_name, struct symbol *sym, CORE_ADDR pc, struct gdbarch *arch, std::vector< bool > ®isters_used, 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) |
void | compile_dwarf_bounds_to_c (string_file *stream, const char *result_name, const struct dynamic_prop *prop, struct symbol *sym, CORE_ADDR pc, struct gdbarch *arch, std::vector< bool > ®isters_used, 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) |
#define BINARY | ( | OP | ) |
#define COMPARE | ( | OP | ) |
#define GCC_INTPTR "__gdb_intptr" |
Definition at line 431 of file compile-loc2c.c.
Referenced by do_compile_dwarf_expr_to_c().
#define GCC_UINTPTR "__gdb_uintptr" |
Definition at line 430 of file compile-loc2c.c.
Referenced by compile_dwarf_expr_to_c(), do_compile_dwarf_expr_to_c(), push(), pushf_register(), and pushf_register_address().
#define SET_CHECK_DEPTH | ( | WHERE | ) |
|
static |
Definition at line 487 of file compile-loc2c.c.
References gdb_printf(), ui_file::puts(), and ui_file::vprintf().
void compile_dwarf_bounds_to_c | ( | string_file * | stream, |
const char * | result_name, | ||
const struct dynamic_prop * | prop, | ||
struct symbol * | sym, | ||
CORE_ADDR | pc, | ||
struct gdbarch * | arch, | ||
std::vector< bool > & | registers_used, | ||
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 ) |
Definition at line 1162 of file compile-loc2c.c.
References symbol::arch, and do_compile_dwarf_expr_to_c().
Referenced by dwarf2_compile_property_to_c().
void compile_dwarf_expr_to_c | ( | string_file * | stream, |
const char * | result_name, | ||
struct symbol * | sym, | ||
CORE_ADDR | pc, | ||
struct gdbarch * | arch, | ||
std::vector< bool > & | registers_used, | ||
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 ) |
Definition at line 1145 of file compile-loc2c.c.
References symbol::arch, do_compile_dwarf_expr_to_c(), and GCC_UINTPTR.
Referenced by locexpr_generate_c_location(), and loclist_generate_c_location().
|
static |
Definition at line 390 of file compile-loc2c.c.
References compute_stack_depth_worker().
Referenced by do_compile_dwarf_expr_to_c().
|
static |
Definition at line 77 of file compile-loc2c.c.
References extract_signed_integer(), safe_read_sleb128(), safe_read_uleb128(), and SET_CHECK_DEPTH.
Referenced by compute_stack_depth().
|
static |
Definition at line 592 of file compile-loc2c.c.
References value::address, symbol::arch, value::arch(), BINARY, binary, block_for_pc(), c_get_mode_for_size(), COMPARE, compute_stack_depth(), do_compile_dwarf_expr_to_c(), dwarf2_fetch_cfa_info(), dwarf_expr_require_composition(), dwarf_reg_to_regnum_or_error(), extract_signed_integer(), extract_unsigned_integer(), func_get_frame_base_dwarf_block(), GCC_INTPTR, GCC_UINTPTR, gdb_printf(), gdbarch_byte_order(), get_selected_frame(), block::linkage_function(), value::lval(), lval_memory, dwarf2_per_objfile::objfile, value::offset(), print_label(), general_symbol_info::print_name(), ui_file::printf(), push(), pushf(), pushf_register(), pushf_register_address(), ui_file::puts(), read_var_value(), value::reg, regnum, safe_read_sleb128(), safe_read_uleb128(), size, objfile::text_section_offset(), and unary().
Referenced by compile_dwarf_bounds_to_c(), compile_dwarf_expr_to_c(), and do_compile_dwarf_expr_to_c().
|
static |
Definition at line 512 of file compile-loc2c.c.
References regnum.
Referenced by pushf_register(), and pushf_register_address().
|
static |
Definition at line 504 of file compile-loc2c.c.
References ui_file::printf().
Referenced by do_compile_dwarf_expr_to_c().
|
static |
Definition at line 436 of file compile-loc2c.c.
References GCC_UINTPTR, and gdb_printf().
Referenced by do_compile_dwarf_expr_to_c().
|
static |
Definition at line 450 of file compile-loc2c.c.
References gdb_printf(), ui_file::puts(), and ui_file::vprintf().
Referenced by do_compile_dwarf_expr_to_c(), pushf_register(), and pushf_register_address().
|
static |
Definition at line 546 of file compile-loc2c.c.
References string_file::c_str(), COMPILE_I_SIMPLE_REGISTER_ARG_NAME, compile_register_name_mangled(), GCC_UINTPTR, note_register(), pushf(), and regnum.
Referenced by do_compile_dwarf_expr_to_c().
|
static |
Definition at line 528 of file compile-loc2c.c.
References string_file::c_str(), COMPILE_I_SIMPLE_REGISTER_ARG_NAME, compile_register_name_mangled(), GCC_UINTPTR, note_register(), pushf(), and regnum.
Referenced by do_compile_dwarf_expr_to_c().
|
static |
Definition at line 470 of file compile-loc2c.c.
References gdb_printf(), ui_file::puts(), and ui_file::vprintf().
Referenced by do_compile_dwarf_expr_to_c().