GDB (xrefs)
Functions
/tmp/gdb-8.1/gdb/ax-gdb.c File Reference
#include "defs.h"
#include "symtab.h"
#include "symfile.h"
#include "gdbtypes.h"
#include "language.h"
#include "value.h"
#include "expression.h"
#include "command.h"
#include "gdbcmd.h"
#include "frame.h"
#include "target.h"
#include "ax.h"
#include "ax-gdb.h"
#include "block.h"
#include "regcache.h"
#include "user-regs.h"
#include "dictionary.h"
#include "breakpoint.h"
#include "tracepoint.h"
#include "cp-support.h"
#include "arch-utils.h"
#include "cli/cli-utils.h"
#include "linespec.h"
#include "location.h"
#include "objfiles.h"
#include "typeprint.h"
#include "valprint.h"
#include "c-lang.h"
#include "format.h"

Go to the source code of this file.

Functions

static struct valueconst_var_ref (struct symbol *var)
 
static struct valueconst_expr (union exp_element **pc)
 
static struct valuemaybe_const_expr (union exp_element **pc)
 
static void gen_traced_pop (struct agent_expr *, struct axs_value *)
 
static void gen_sign_extend (struct agent_expr *, struct type *)
 
static void gen_extend (struct agent_expr *, struct type *)
 
static void gen_fetch (struct agent_expr *, struct type *)
 
static void gen_left_shift (struct agent_expr *, int)
 
static void gen_frame_args_address (struct agent_expr *)
 
static void gen_frame_locals_address (struct agent_expr *)
 
static void gen_offset (struct agent_expr *ax, int offset)
 
static void gen_sym_offset (struct agent_expr *, struct symbol *)
 
static void gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
 
static void gen_int_literal (struct agent_expr *ax, struct axs_value *value, LONGEST k, struct type *type)
 
static void gen_usual_unary (struct agent_expr *ax, struct axs_value *value)
 
static int type_wider_than (struct type *type1, struct type *type2)
 
static struct typemax_type (struct type *type1, struct type *type2)
 
static void gen_conversion (struct agent_expr *ax, struct type *from, struct type *to)
 
static int is_nontrivial_conversion (struct type *from, struct type *to)
 
static void gen_usual_arithmetic (struct agent_expr *ax, struct axs_value *value1, struct axs_value *value2)
 
static void gen_integral_promotions (struct agent_expr *ax, struct axs_value *value)
 
static void gen_cast (struct agent_expr *ax, struct axs_value *value, struct type *type)
 
static void gen_scale (struct agent_expr *ax, enum agent_op op, struct type *type)
 
static void gen_ptradd (struct agent_expr *ax, struct axs_value *value, struct axs_value *value1, struct axs_value *value2)
 
static void gen_ptrsub (struct agent_expr *ax, struct axs_value *value, struct axs_value *value1, struct axs_value *value2)
 
static void gen_ptrdiff (struct agent_expr *ax, struct axs_value *value, struct axs_value *value1, struct axs_value *value2, struct type *result_type)
 
static void gen_binop (struct agent_expr *ax, struct axs_value *value, struct axs_value *value1, struct axs_value *value2, enum agent_op op, enum agent_op op_unsigned, int may_carry, const char *name)
 
static void gen_logical_not (struct agent_expr *ax, struct axs_value *value, struct type *result_type)
 
static void gen_complement (struct agent_expr *ax, struct axs_value *value)
 
static void gen_deref (struct axs_value *)
 
static void gen_address_of (struct axs_value *)
 
static void gen_bitfield_ref (struct agent_expr *ax, struct axs_value *value, struct type *type, int start, int end)
 
static void gen_primitive_field (struct agent_expr *ax, struct axs_value *value, int offset, int fieldno, struct type *type)
 
static int gen_struct_ref_recursive (struct agent_expr *ax, struct axs_value *value, const char *field, int offset, struct type *type)
 
static void gen_struct_ref (struct agent_expr *ax, struct axs_value *value, const char *field, const char *operator_name, const char *operand_name)
 
static void gen_static_field (struct agent_expr *ax, struct axs_value *value, struct type *type, int fieldno)
 
static void gen_repeat (struct expression *exp, union exp_element **pc, struct agent_expr *ax, struct axs_value *value)
 
static void gen_sizeof (struct expression *exp, union exp_element **pc, struct agent_expr *ax, struct axs_value *value, struct type *size_type)
 
static void gen_expr_binop_rest (struct expression *exp, enum exp_opcode op, union exp_element **pc, struct agent_expr *ax, struct axs_value *value, struct axs_value *value1, struct axs_value *value2)
 
static void gen_trace_static_fields (struct agent_expr *ax, struct type *type)
 
static void gen_msym_var_ref (agent_expr *ax, axs_value *value, minimal_symbol *msymbol, objfile *objf)
 
void require_rvalue (struct agent_expr *ax, struct axs_value *value)
 
static void gen_equal (struct agent_expr *ax, struct axs_value *value, struct axs_value *value1, struct axs_value *value2, struct type *result_type)
 
static void gen_less (struct agent_expr *ax, struct axs_value *value, struct axs_value *value1, struct axs_value *value2, struct type *result_type)
 
static int gen_namespace_elt (struct agent_expr *ax, struct axs_value *value, const struct type *curtype, char *name)
 
static int gen_maybe_namespace_elt (struct agent_expr *ax, struct axs_value *value, const struct type *curtype, char *name)
 
static int gen_struct_elt_for_reference (struct agent_expr *ax, struct axs_value *value, struct type *type, char *fieldname)
 
static int gen_aggregate_elt_ref (struct agent_expr *ax, struct axs_value *value, struct type *type, char *field)
 
static void gen_expr_for_cast (struct expression *exp, union exp_element **pc, struct agent_expr *ax, struct axs_value *value, struct type *to_type)
 
void gen_expr (struct expression *exp, union exp_element **pc, struct agent_expr *ax, struct axs_value *value)
 
agent_expr_up gen_trace_for_var (CORE_ADDR scope, struct gdbarch *gdbarch, struct symbol *var, int trace_string)
 
agent_expr_up gen_trace_for_expr (CORE_ADDR scope, struct expression *expr, int trace_string)
 
agent_expr_up gen_eval_for_expr (CORE_ADDR scope, struct expression *expr)
 
agent_expr_up gen_trace_for_return_address (CORE_ADDR scope, struct gdbarch *gdbarch, int trace_string)
 
agent_expr_up gen_printf (CORE_ADDR scope, struct gdbarch *gdbarch, CORE_ADDR function, LONGEST channel, const char *format, int fmtlen, int nargs, struct expression **exprs)
 
static void agent_eval_command_one (const char *exp, int eval, CORE_ADDR pc)
 
static void agent_command_1 (const char *exp, int eval)
 
static void agent_command (const char *exp, int from_tty)
 
static void agent_eval_command (const char *exp, int from_tty)
 
static void maint_agent_printf_command (const char *cmdrest, int from_tty)
 
void _initialize_ax_gdb (void)
 

Function Documentation

◆ _initialize_ax_gdb()

void _initialize_ax_gdb ( void  )

◆ agent_command()

static void agent_command ( const char *  exp,
int  from_tty 
)
static

Definition at line 2662 of file ax-gdb.c.

References agent_command_1().

Referenced by _initialize_ax_gdb().

◆ agent_command_1()

static void agent_command_1 ( const char *  exp,
int  eval 
)
static

◆ agent_eval_command()

static void agent_eval_command ( const char *  exp,
int  from_tty 
)
static

Definition at line 2672 of file ax-gdb.c.

References agent_command_1().

Referenced by _initialize_ax_gdb().

◆ agent_eval_command_one()

static void agent_eval_command_one ( const char *  exp,
int  eval,
CORE_ADDR  pc 
)
static

◆ const_expr()

static struct value * const_expr ( union exp_element **  pc)
static

Definition at line 207 of file ax-gdb.c.

References const_var_ref(), value_from_longest(), and value_neg().

Referenced by event_location_to_sals(), gen_repeat(), and maybe_const_expr().

◆ const_var_ref()

static struct value * const_var_ref ( struct symbol var)
static

◆ gen_address_of()

static void gen_address_of ( struct axs_value value)
static

◆ gen_aggregate_elt_ref()

static int gen_aggregate_elt_ref ( struct agent_expr ax,
struct axs_value value,
struct type type,
char *  field 
)
static

◆ gen_binop()

static void gen_binop ( struct agent_expr ax,
struct axs_value value,
struct axs_value value1,
struct axs_value value2,
enum agent_op  op,
enum agent_op  op_unsigned,
int  may_carry,
const char *  name 
)
static

◆ gen_bitfield_ref()

static void gen_bitfield_ref ( struct agent_expr ax,
struct axs_value value,
struct type type,
int  start,
int  end 
)
static

◆ gen_cast()

static void gen_cast ( struct agent_expr ax,
struct axs_value value,
struct type type 
)
static

◆ gen_complement()

static void gen_complement ( struct agent_expr ax,
struct axs_value value 
)
static

Definition at line 1188 of file ax-gdb.c.

References _, ax_simple(), error(), gen_extend(), value::type, TYPE_CODE, and TYPE_CODE_INT.

Referenced by gen_expr().

◆ gen_conversion()

static void gen_conversion ( struct agent_expr ax,
struct type from,
struct type to 
)
static

◆ gen_deref()

static void gen_deref ( struct axs_value value)
static

◆ gen_equal()

static void gen_equal ( struct agent_expr ax,
struct axs_value value,
struct axs_value value1,
struct axs_value value2,
struct type result_type 
)
static

Definition at line 1121 of file ax-gdb.c.

References ax_simple(), axs_rvalue, gen_binop(), pointer_type(), axs_value::type, and value::type.

Referenced by gen_expr_binop_rest().

◆ gen_eval_for_expr()

agent_expr_up gen_eval_for_expr ( CORE_ADDR  scope,
struct expression expr 
)

◆ gen_expr()

void gen_expr ( struct expression exp,
union exp_element **  pc,
struct agent_expr ax,
struct axs_value value 
)

Definition at line 1806 of file ax-gdb.c.

References _, ax_const_l(), ax_goto(), ax_label(), ax_tsv(), axs_lvalue_memory, axs_lvalue_register, axs_rvalue, block_for_pc(), block_linkage_function(), builtin_type::builtin_int, builtin_type::builtin_long_long, builtin_type(), BYTES_TO_EXP_ELEM, check_typedef(), compile_internalvar_to_ax(), expression::elts, error(), error_unknown_type(), EVAL_AVOID_SIDE_EFFECTS, evaluate_subexp(), find_trace_state_variable(), func, agent_expr::gdbarch, gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gen_address_of(), gen_aggregate_elt_ref(), gen_binop(), gen_complement(), gen_deref(), gen_expr(), gen_expr_binop_rest(), gen_expr_for_cast(), gen_int_literal(), gen_integral_promotions(), gen_logical_not(), gen_msym_var_ref(), gen_repeat(), gen_sizeof(), gen_struct_ref(), gen_traced_pop(), gen_usual_arithmetic(), gen_usual_unary(), gen_var_ref(), internal_error(), internalvar_name(), axs_value::kind, language_defn::la_name_of_this, language_def(), agent_expr::len, type::length, longest_to_int(), lookup_language_this(), maybe_const_expr(), MSYMBOL_PRINT_NAME, name, trace_state_variable::number, offset, op_name(), pointer_type(), value::reg, register_type(), require_rvalue(), agent_expr::scope, block_symbol::symbol, SYMBOL_LANGUAGE, SYMBOL_PRINT_NAME, agent_expr::tracing, axs_value::type, type, value::type, TYPE_CODE, TYPE_CODE_ERROR, user_reg_map_name_to_regnum(), value_as_long(), and value_type().

Referenced by dtrace_probe::compile_to_ax(), stap_probe::compile_to_ax(), gen_eval_for_expr(), gen_expr(), gen_expr_binop_rest(), gen_expr_for_cast(), gen_printf(), gen_repeat(), gen_sizeof(), and gen_trace_for_expr().

◆ gen_expr_binop_rest()

static void gen_expr_binop_rest ( struct expression exp,
enum exp_opcode  op,
union exp_element **  pc,
struct agent_expr ax,
struct axs_value value,
struct axs_value value1,
struct axs_value value2 
)
static

◆ gen_expr_for_cast()

static void gen_expr_for_cast ( struct expression exp,
union exp_element **  pc,
struct agent_expr ax,
struct axs_value value,
struct type to_type 
)
static

◆ gen_extend()

static void gen_extend ( struct agent_expr ax,
struct type type 
)
static

◆ gen_fetch()

static void gen_fetch ( struct agent_expr ax,
struct type type 
)
static

◆ gen_frame_args_address()

static void gen_frame_args_address ( struct agent_expr ax)
static

◆ gen_frame_locals_address()

static void gen_frame_locals_address ( struct agent_expr ax)
static

◆ gen_int_literal()

static void gen_int_literal ( struct agent_expr ax,
struct axs_value value,
LONGEST  k,
struct type type 
)
static

Definition at line 757 of file ax-gdb.c.

References ax_const_l(), axs_rvalue, check_typedef(), and value::type.

Referenced by gen_expr().

◆ gen_integral_promotions()

static void gen_integral_promotions ( struct agent_expr ax,
struct axs_value value 
)
static

◆ gen_left_shift()

static void gen_left_shift ( struct agent_expr ax,
int  distance 
)
static

Definition at line 532 of file ax-gdb.c.

References ax_const_l(), and ax_simple().

Referenced by gen_bitfield_ref().

◆ gen_less()

static void gen_less ( struct agent_expr ax,
struct axs_value value,
struct axs_value value1,
struct axs_value value2,
struct type result_type 
)
static

Definition at line 1135 of file ax-gdb.c.

References ax_simple(), axs_rvalue, gen_binop(), pointer_type(), axs_value::type, and value::type.

Referenced by gen_expr_binop_rest().

◆ gen_logical_not()

static void gen_logical_not ( struct agent_expr ax,
struct axs_value value,
struct type result_type 
)
static

Definition at line 1175 of file ax-gdb.c.

References _, ax_simple(), error(), value::type, TYPE_CODE, TYPE_CODE_INT, and TYPE_CODE_PTR.

Referenced by gen_expr(), and gen_expr_binop_rest().

◆ gen_maybe_namespace_elt()

static int gen_maybe_namespace_elt ( struct agent_expr ax,
struct axs_value value,
const struct type curtype,
char *  name 
)
static

◆ gen_msym_var_ref()

static void gen_msym_var_ref ( agent_expr ax,
axs_value value,
minimal_symbol msymbol,
objfile objf 
)
static

Definition at line 740 of file ax-gdb.c.

References ax_const_l(), axs_lvalue_memory, find_minsym_type_and_address(), and value::type.

Referenced by gen_expr(), and gen_expr_for_cast().

◆ gen_namespace_elt()

static int gen_namespace_elt ( struct agent_expr ax,
struct axs_value value,
const struct type curtype,
char *  name 
)
static

Definition at line 1625 of file ax-gdb.c.

References _, error(), gen_maybe_namespace_elt(), name, and TYPE_TAG_NAME.

Referenced by gen_aggregate_elt_ref().

◆ gen_offset()

static void gen_offset ( struct agent_expr ax,
int  offset 
)
static

◆ gen_primitive_field()

static void gen_primitive_field ( struct agent_expr ax,
struct axs_value value,
int  offset,
int  fieldno,
struct type type 
)
static

◆ gen_printf()

agent_expr_up gen_printf ( CORE_ADDR  scope,
struct gdbarch gdbarch,
CORE_ADDR  function,
LONGEST  channel,
const char *  format,
int  fmtlen,
int  nargs,
struct expression **  exprs 
)

◆ gen_ptradd()

static void gen_ptradd ( struct agent_expr ax,
struct axs_value value,
struct axs_value value1,
struct axs_value value2 
)
static

◆ gen_ptrdiff()

static void gen_ptrdiff ( struct agent_expr ax,
struct axs_value value,
struct axs_value value1,
struct axs_value value2,
struct type result_type 
)
static

◆ gen_ptrsub()

static void gen_ptrsub ( struct agent_expr ax,
struct axs_value value,
struct axs_value value1,
struct axs_value value2 
)
static

◆ gen_repeat()

static void gen_repeat ( struct expression exp,
union exp_element **  pc,
struct agent_expr ax,
struct axs_value value 
)
static

◆ gen_scale()

static void gen_scale ( struct agent_expr ax,
enum agent_op  op,
struct type type 
)
static

Definition at line 1055 of file ax-gdb.c.

References ax_const_l(), ax_simple(), TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by gen_ptradd(), gen_ptrdiff(), and gen_ptrsub().

◆ gen_sign_extend()

static void gen_sign_extend ( struct agent_expr ax,
struct type type 
)
static

Definition at line 444 of file ax-gdb.c.

References ax_ext(), TARGET_CHAR_BIT, TYPE_LENGTH, and TYPE_UNSIGNED.

Referenced by gen_fetch().

◆ gen_sizeof()

static void gen_sizeof ( struct expression exp,
union exp_element **  pc,
struct agent_expr ax,
struct axs_value value,
struct type size_type 
)
static

Definition at line 1744 of file ax-gdb.c.

References ax_const_l(), axs_rvalue, gen_expr(), agent_expr::len, value::type, and TYPE_LENGTH.

Referenced by gen_expr().

◆ gen_static_field()

static void gen_static_field ( struct agent_expr ax,
struct axs_value value,
struct type type,
int  fieldno 
)
static

◆ gen_struct_elt_for_reference()

static int gen_struct_elt_for_reference ( struct agent_expr ax,
struct axs_value value,
struct type type,
char *  fieldname 
)
static

◆ gen_struct_ref()

static void gen_struct_ref ( struct agent_expr ax,
struct axs_value value,
const char *  field,
const char *  operator_name,
const char *  operand_name 
)
static

◆ gen_struct_ref_recursive()

static int gen_struct_ref_recursive ( struct agent_expr ax,
struct axs_value value,
const char *  field,
int  offset,
struct type type 
)
static

◆ gen_sym_offset()

static void gen_sym_offset ( struct agent_expr ax,
struct symbol var 
)
static

Definition at line 608 of file ax-gdb.c.

References gen_offset(), and SYMBOL_VALUE.

Referenced by gen_var_ref().

◆ gen_trace_for_expr()

agent_expr_up gen_trace_for_expr ( CORE_ADDR  scope,
struct expression expr,
int  trace_string 
)

◆ gen_trace_for_return_address()

agent_expr_up gen_trace_for_return_address ( CORE_ADDR  scope,
struct gdbarch gdbarch,
int  trace_string 
)

Definition at line 2516 of file ax-gdb.c.

References ax_simple(), gdbarch_gen_return_address(), and gen_traced_pop().

Referenced by agent_eval_command_one(), and encode_actions_1().

◆ gen_trace_for_var()

agent_expr_up gen_trace_for_var ( CORE_ADDR  scope,
struct gdbarch gdbarch,
struct symbol var,
int  trace_string 
)

Definition at line 2433 of file ax-gdb.c.

References ax_simple(), gen_traced_pop(), and gen_var_ref().

Referenced by collection_list::collect_symbol().

◆ gen_trace_static_fields()

static void gen_trace_static_fields ( struct agent_expr ax,
struct type type 
)
static

◆ gen_traced_pop()

static void gen_traced_pop ( struct agent_expr ax,
struct axs_value value 
)
static

◆ gen_usual_arithmetic()

static void gen_usual_arithmetic ( struct agent_expr ax,
struct axs_value value1,
struct axs_value value2 
)
static

◆ gen_usual_unary()

static void gen_usual_unary ( struct agent_expr ax,
struct axs_value value 
)
static

◆ gen_var_ref()

static void gen_var_ref ( struct agent_expr ax,
struct axs_value value,
struct symbol var 
)
static

◆ is_nontrivial_conversion()

static int is_nontrivial_conversion ( struct type from,
struct type to 
)
static

Definition at line 919 of file ax-gdb.c.

References gen_conversion().

Referenced by gen_usual_arithmetic().

◆ maint_agent_printf_command()

static void maint_agent_printf_command ( const char *  cmdrest,
int  from_tty 
)
static

◆ max_type()

static struct type * max_type ( struct type type1,
struct type type2 
)
static

Definition at line 881 of file ax-gdb.c.

References type_wider_than().

Referenced by gen_usual_arithmetic().

◆ maybe_const_expr()

static struct value * maybe_const_expr ( union exp_element **  pc)
static

Definition at line 250 of file ax-gdb.c.

References const_expr().

Referenced by gen_expr().

◆ require_rvalue()

void require_rvalue ( struct agent_expr ax,
struct axs_value value 
)

◆ type_wider_than()

static int type_wider_than ( struct type type1,
struct type type2 
)
static

Definition at line 870 of file ax-gdb.c.

References TYPE_LENGTH, and TYPE_UNSIGNED.

Referenced by gen_integral_promotions(), and max_type().