GDB (xrefs)
|
#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 "gdb_string.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 "valprint.h"
#include "c-lang.h"
#include "format.h"
Go to the source code of this file.
Functions | |
static struct value * | const_var_ref (struct symbol *var) |
static struct value * | const_expr (union exp_element **pc) |
static struct value * | maybe_const_expr (union exp_element **pc) |
static void | gen_traced_pop (struct gdbarch *, 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 gdbarch *, struct agent_expr *) |
static void | gen_frame_locals_address (struct gdbarch *, 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 gdbarch *, 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 expression *exp, struct agent_expr *ax, struct axs_value *value) |
static int | type_wider_than (struct type *type1, struct type *type2) |
static struct type * | max_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 expression *exp, struct agent_expr *ax, struct axs_value *value1, struct axs_value *value2) |
static void | gen_integral_promotions (struct expression *exp, 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, 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 agent_expr *, struct axs_value *) |
static void | gen_address_of (struct agent_expr *, struct axs_value *) |
static void | gen_bitfield_ref (struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *type, int start, int end) |
static void | gen_primitive_field (struct expression *exp, struct agent_expr *ax, struct axs_value *value, int offset, int fieldno, struct type *type) |
static int | gen_struct_ref_recursive (struct expression *exp, struct agent_expr *ax, struct axs_value *value, char *field, int offset, struct type *type) |
static void | gen_struct_ref (struct expression *exp, struct agent_expr *ax, struct axs_value *value, char *field, char *operator_name, char *operand_name) |
static void | gen_static_field (struct gdbarch *gdbarch, 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 | agent_command (char *exp, int from_tty) |
static void | gen_trace_static_fields (struct gdbarch *gdbarch, struct agent_expr *ax, struct type *type) |
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 expression *exp, struct agent_expr *ax, struct axs_value *value, const struct type *curtype, char *name) |
static int | gen_maybe_namespace_elt (struct expression *exp, struct agent_expr *ax, struct axs_value *value, const struct type *curtype, char *name) |
static int | gen_struct_elt_for_reference (struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *type, char *fieldname) |
static int | gen_aggregate_elt_ref (struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *type, char *field, char *operator_name, char *operand_name) |
void | gen_expr (struct expression *exp, union exp_element **pc, struct agent_expr *ax, struct axs_value *value) |
struct agent_expr * | gen_trace_for_var (CORE_ADDR scope, struct gdbarch *gdbarch, struct symbol *var, int trace_string) |
struct agent_expr * | gen_trace_for_expr (CORE_ADDR scope, struct expression *expr, int trace_string) |
struct agent_expr * | gen_eval_for_expr (CORE_ADDR scope, struct expression *expr) |
struct agent_expr * | gen_trace_for_return_address (CORE_ADDR scope, struct gdbarch *gdbarch, int trace_string) |
struct agent_expr * | gen_printf (CORE_ADDR scope, struct gdbarch *gdbarch, CORE_ADDR function, LONGEST channel, const char *format, int fmtlen, struct format_piece *frags, int nargs, struct expression **exprs) |
static void | agent_eval_command_one (const char *exp, int eval, CORE_ADDR pc) |
static void | agent_command_1 (char *exp, int eval) |
static void | agent_eval_command (char *exp, int from_tty) |
static void | maint_agent_printf_command (char *exp, int from_tty) |
void | _initialize_ax_gdb (void) |
void _initialize_ax_gdb | ( | void | ) |
static void agent_command | ( | char * | exp, |
int | from_tty | ||
) | [static] |
Definition at line 2675 of file ax-gdb.c.
References agent_command_1().
static void agent_command_1 | ( | char * | exp, |
int | eval | ||
) | [static] |
Definition at line 2628 of file ax-gdb.c.
References _, agent_eval_command_one(), check_for_argument(), decode_line_full(), DECODE_LINE_FUNFIRSTLINE, do_cleanups(), dont_repeat(), error(), error_no_arg(), get_current_frame(), get_frame_pc(), init_linespec_result(), make_cleanup_destroy_linespec_result(), symtabs_and_lines::nelts, overlay_debugging, symtab_and_line::pc, linespec_sals::sals, symtabs_and_lines::sals, skip_spaces(), and VEC_iterate.
Referenced by agent_command(), and agent_eval_command().
static void agent_eval_command | ( | char * | exp, |
int | from_tty | ||
) | [static] |
Definition at line 2685 of file ax-gdb.c.
References agent_command_1().
static void agent_eval_command_one | ( | const char * | exp, |
int | eval, | ||
CORE_ADDR | pc | ||
) | [static] |
Definition at line 2582 of file ax-gdb.c.
References ax_print(), ax_reqs(), block_for_pc(), decode_agent_options(), do_cleanups(), dont_repeat(), free_current_contents(), gdb_assert, gdb_stdout, gen_eval_for_expr(), gen_trace_for_expr(), gen_trace_for_return_address(), get_current_arch(), make_cleanup(), make_cleanup_free_agent_expr(), parse_exp_1(), and agent_expr::trace_string.
Referenced by agent_command_1().
static struct value * const_expr | ( | union exp_element ** | pc | ) | [static, read] |
Definition at line 215 of file ax-gdb.c.
References const_var_ref(), LONGEST, value_from_longest(), and value_neg().
Referenced by gen_repeat(), and maybe_const_expr().
static struct value * const_var_ref | ( | struct symbol * | var | ) | [static, read] |
Definition at line 192 of file ax-gdb.c.
References LOC_CONST, LOC_LABEL, LONGEST, SYMBOL_CLASS, SYMBOL_TYPE, SYMBOL_VALUE, SYMBOL_VALUE_ADDRESS, value_from_longest(), and value_from_pointer().
Referenced by const_expr().
static void gen_address_of | ( | struct agent_expr * | ax, |
struct axs_value * | value | ||
) | [static] |
Definition at line 1220 of file ax-gdb.c.
References _, axs_lvalue_memory, axs_lvalue_register, axs_rvalue, error(), axs_value::kind, lookup_pointer_type(), axs_value::type, TYPE_CODE, and TYPE_CODE_FUNC.
Referenced by gen_expr().
static int gen_aggregate_elt_ref | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
struct type * | type, | ||
char * | field, | ||
char * | operator_name, | ||
char * | operand_name | ||
) | [static] |
Definition at line 1671 of file ax-gdb.c.
References _, gen_namespace_elt(), gen_struct_elt_for_reference(), internal_error(), TYPE_CODE, TYPE_CODE_NAMESPACE, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.
Referenced by gen_expr().
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, | ||
char * | name | ||
) | [static] |
Definition at line 1149 of file ax-gdb.c.
References _, ax_simple(), axs_rvalue, error(), gen_extend(), axs_value::kind, axs_value::type, TYPE_CODE, TYPE_CODE_INT, and TYPE_UNSIGNED.
Referenced by gen_equal(), gen_expr(), gen_expr_binop_rest(), and gen_less().
static void gen_bitfield_ref | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
struct type * | type, | ||
int | start, | ||
int | end | ||
) | [static] |
Definition at line 1250 of file ax-gdb.c.
References _, ax_ext(), ax_simple(), ax_trace_quick(), ax_zero_ext(), axs_rvalue, check_typedef(), expression::gdbarch, gdbarch_byte_order(), gen_left_shift(), gen_offset(), internal_error(), axs_value::kind, offset, agent_expr::tracing, axs_value::type, type, and TYPE_UNSIGNED.
Referenced by gen_primitive_field().
static void gen_cast | ( | struct agent_expr * | ax, |
struct axs_value * | value, | ||
struct type * | type | ||
) | [static] |
Definition at line 993 of file ax-gdb.c.
References _, check_typedef(), error(), gen_conversion(), require_rvalue(), axs_value::type, type, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_BOOL, TYPE_CODE_ENUM, TYPE_CODE_FUNC, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_CODE_VOID.
Referenced by gen_expr().
static void gen_complement | ( | struct agent_expr * | ax, |
struct axs_value * | value | ||
) | [static] |
Definition at line 1182 of file ax-gdb.c.
References _, ax_simple(), error(), gen_extend(), axs_value::type, TYPE_CODE, and TYPE_CODE_INT.
Referenced by gen_expr().
static void gen_conversion | ( | struct agent_expr * | ax, |
struct type * | from, | ||
struct type * | to | ||
) | [static] |
Definition at line 882 of file ax-gdb.c.
References gen_extend(), TYPE_LENGTH, and TYPE_UNSIGNED.
Referenced by gen_cast(), gen_integral_promotions(), gen_usual_arithmetic(), and is_nontrivial_conversion().
static void gen_deref | ( | struct agent_expr * | ax, |
struct axs_value * | value | ||
) | [static] |
Definition at line 1197 of file ax-gdb.c.
References _, axs_lvalue_memory, axs_rvalue, check_typedef(), error(), internal_error(), axs_value::kind, pointer_type(), axs_value::type, TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_VOID, and TYPE_TARGET_TYPE.
Referenced by gen_expr(), gen_expr_binop_rest(), and gen_struct_ref().
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 1115 of file ax-gdb.c.
References ax_simple(), axs_rvalue, gen_binop(), axs_value::kind, pointer_type(), and axs_value::type.
Referenced by gen_expr_binop_rest().
struct agent_expr* gen_eval_for_expr | ( | CORE_ADDR | scope, |
struct expression * | expr | ||
) | [read] |
Definition at line 2475 of file ax-gdb.c.
References ax_simple(), discard_cleanups(), expression::elts, expression::gdbarch, gen_expr(), make_cleanup_free_agent_expr(), new_agent_expr(), axs_value::optimized_out, require_rvalue(), and agent_expr::tracing.
Referenced by agent_eval_command_one(), encode_actions_1(), parse_cond_to_aexpr(), remote_download_tracepoint(), and validate_actionline().
void gen_expr | ( | struct expression * | exp, |
union exp_element ** | pc, | ||
struct agent_expr * | ax, | ||
struct axs_value * | value | ||
) |
Definition at line 1777 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(), EVAL_AVOID_SIDE_EFFECTS, evaluate_subexp(), find_trace_state_variable(), func, expression::gdbarch, gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gen_address_of(), gen_aggregate_elt_ref(), gen_binop(), gen_cast(), gen_complement(), gen_deref(), gen_expr(), gen_expr_binop_rest(), gen_int_literal(), gen_integral_promotions(), gen_logical_not(), 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, longest_to_int(), lookup_language_this(), maybe_const_expr(), name, trace_state_variable::number, offset, op_name(), axs_value::optimized_out, pointer_type(), axs_value::reg, register_type(), require_rvalue(), agent_expr::scope, SYMBOL_LANGUAGE, SYMBOL_PRINT_NAME, agent_expr::tracing, axs_value::type, type, axs_value::u, user_reg_map_name_to_regnum(), value_as_long(), and value_type().
Referenced by gen_eval_for_expr(), gen_expr(), gen_expr_binop_rest(), gen_printf(), gen_repeat(), gen_sizeof(), gen_trace_for_expr(), and stap_compile_to_ax().
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] |
Definition at line 2243 of file ax-gdb.c.
References _, ax_simple(), binop_types_user_defined_p(), builtin_type::builtin_int, builtin_type::builtin_long, builtin_type(), check_typedef(), error(), expression::gdbarch, gen_binop(), gen_deref(), gen_equal(), gen_expr(), gen_less(), gen_logical_not(), gen_ptradd(), gen_ptrdiff(), gen_ptrsub(), gen_usual_arithmetic(), gen_usual_unary(), internal_error(), is_integral_type(), pointer_type(), axs_value::type, type, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_INT, TYPE_CODE_PTR, and TYPE_NAME.
Referenced by gen_expr().
static void gen_extend | ( | struct agent_expr * | ax, |
struct type * | type | ||
) | [static] |
Definition at line 467 of file ax-gdb.c.
References ax_ext(), ax_zero_ext(), bits, TYPE_LENGTH, and TYPE_UNSIGNED.
Referenced by gen_binop(), gen_complement(), gen_conversion(), gen_ptradd(), gen_ptrsub(), and require_rvalue().
static void gen_fetch | ( | struct agent_expr * | ax, |
struct type * | type | ||
) | [static] |
Definition at line 480 of file ax-gdb.c.
References _, ax_simple(), ax_trace_quick(), error(), gen_sign_extend(), internal_error(), agent_expr::tracing, TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_RANGE, TYPE_CODE_REF, TYPE_LENGTH, TYPE_NAME, and TYPE_TARGET_TYPE.
Referenced by gen_var_ref(), and require_rvalue().
static void gen_frame_args_address | ( | struct gdbarch * | gdbarch, |
struct agent_expr * | ax | ||
) | [static] |
Definition at line 563 of file ax-gdb.c.
References ax_reg(), gdbarch_virtual_frame_pointer(), gen_offset(), LONGEST, and agent_expr::scope.
Referenced by gen_var_ref().
static void gen_frame_locals_address | ( | struct gdbarch * | gdbarch, |
struct agent_expr * | ax | ||
) | [static] |
Definition at line 578 of file ax-gdb.c.
References ax_reg(), gdbarch_virtual_frame_pointer(), gen_offset(), LONGEST, and agent_expr::scope.
Referenced by gen_var_ref().
static void gen_int_literal | ( | struct agent_expr * | ax, |
struct axs_value * | value, | ||
LONGEST | k, | ||
struct type * | type | ||
) | [static] |
Definition at line 749 of file ax-gdb.c.
References ax_const_l(), axs_rvalue, check_typedef(), axs_value::kind, and axs_value::type.
Referenced by gen_expr().
static void gen_integral_promotions | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value | ||
) | [static] |
Definition at line 973 of file ax-gdb.c.
References builtin_type::builtin_int, builtin_type(), builtin_type::builtin_unsigned_int, expression::gdbarch, gen_conversion(), axs_value::type, and type_wider_than().
Referenced by gen_expr().
static void gen_left_shift | ( | struct agent_expr * | ax, |
int | distance | ||
) | [static] |
Definition at line 542 of file ax-gdb.c.
References ax_const_l(), and ax_simple().
Referenced by gen_bitfield_ref().
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 1129 of file ax-gdb.c.
References ax_simple(), axs_rvalue, gen_binop(), axs_value::kind, pointer_type(), and axs_value::type.
Referenced by gen_expr_binop_rest().
static void gen_logical_not | ( | struct agent_expr * | ax, |
struct axs_value * | value, | ||
struct type * | result_type | ||
) | [static] |
Definition at line 1169 of file ax-gdb.c.
References _, ax_simple(), error(), axs_value::type, TYPE_CODE, TYPE_CODE_INT, and TYPE_CODE_PTR.
Referenced by gen_expr(), and gen_expr_binop_rest().
static int gen_maybe_namespace_elt | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
const struct type * | curtype, | ||
char * | name | ||
) | [static] |
Definition at line 1646 of file ax-gdb.c.
References _, block_for_pc(), cp_lookup_symbol_namespace(), error(), expression::gdbarch, gen_var_ref(), namespace_name(), axs_value::optimized_out, agent_expr::scope, SYMBOL_PRINT_NAME, TYPE_TAG_NAME, and VAR_DOMAIN.
Referenced by gen_namespace_elt(), and gen_struct_elt_for_reference().
static int gen_namespace_elt | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
const struct type * | curtype, | ||
char * | name | ||
) | [static] |
Definition at line 1626 of file ax-gdb.c.
References _, error(), gen_maybe_namespace_elt(), and TYPE_TAG_NAME.
Referenced by gen_aggregate_elt_ref().
static void gen_offset | ( | struct agent_expr * | ax, |
int | offset | ||
) | [static] |
Definition at line 596 of file ax-gdb.c.
References ax_const_l(), and ax_simple().
Referenced by gen_bitfield_ref(), gen_frame_args_address(), gen_frame_locals_address(), gen_primitive_field(), and gen_sym_offset().
static void gen_primitive_field | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
int | offset, | ||
int | fieldno, | ||
struct type * | type | ||
) | [static] |
Definition at line 1410 of file ax-gdb.c.
References axs_lvalue_memory, gen_bitfield_ref(), gen_offset(), axs_value::kind, axs_value::type, TYPE_FIELD_BITPOS, TYPE_FIELD_BITSIZE, TYPE_FIELD_PACKED, and TYPE_FIELD_TYPE.
Referenced by gen_struct_ref_recursive().
struct agent_expr* gen_printf | ( | CORE_ADDR | scope, |
struct gdbarch * | gdbarch, | ||
CORE_ADDR | function, | ||
LONGEST | channel, | ||
const char * | format, | ||
int | fmtlen, | ||
struct format_piece * | frags, | ||
int | nargs, | ||
struct expression ** | exprs | ||
) | [read] |
Definition at line 2534 of file ax-gdb.c.
References ax_const_l(), ax_simple(), ax_string(), discard_cleanups(), expression::elts, gen_expr(), make_cleanup_free_agent_expr(), new_agent_expr(), axs_value::optimized_out, require_rvalue(), and agent_expr::tracing.
Referenced by maint_agent_printf_command(), and parse_cmd_to_aexpr().
static void gen_ptradd | ( | struct agent_expr * | ax, |
struct axs_value * | value, | ||
struct axs_value * | value1, | ||
struct axs_value * | value2 | ||
) | [static] |
Definition at line 1063 of file ax-gdb.c.
References ax_simple(), axs_rvalue, gdb_assert, gen_extend(), gen_scale(), axs_value::kind, pointer_type(), axs_value::type, TYPE_CODE, and TYPE_CODE_INT.
Referenced by gen_expr_binop_rest().
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] |
Definition at line 1095 of file ax-gdb.c.
References _, ax_simple(), axs_rvalue, error(), gdb_assert, gen_scale(), axs_value::kind, pointer_type(), axs_value::type, TYPE_LENGTH, and TYPE_TARGET_TYPE.
Referenced by gen_expr_binop_rest().
static void gen_ptrsub | ( | struct agent_expr * | ax, |
struct axs_value * | value, | ||
struct axs_value * | value1, | ||
struct axs_value * | value2 | ||
) | [static] |
Definition at line 1079 of file ax-gdb.c.
References ax_simple(), axs_rvalue, gdb_assert, gen_extend(), gen_scale(), axs_value::kind, pointer_type(), axs_value::type, TYPE_CODE, and TYPE_CODE_INT.
Referenced by gen_expr_binop_rest().
static void gen_repeat | ( | struct expression * | exp, |
union exp_element ** | pc, | ||
struct agent_expr * | ax, | ||
struct axs_value * | value | ||
) | [static] |
Definition at line 1705 of file ax-gdb.c.
References _, axs_lvalue_memory, const_expr(), error(), gen_expr(), axs_value::kind, lookup_array_range_type(), axs_value::type, TYPE_CODE, TYPE_CODE_INT, value_as_long(), and value_type().
Referenced by gen_expr().
static void gen_scale | ( | struct agent_expr * | ax, |
enum agent_op | op, | ||
struct type * | type | ||
) | [static] |
Definition at line 1049 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().
static void gen_sign_extend | ( | struct agent_expr * | ax, |
struct type * | type | ||
) | [static] |
Definition at line 455 of file ax-gdb.c.
References ax_ext(), TYPE_LENGTH, and TYPE_UNSIGNED.
Referenced by gen_fetch().
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 1749 of file ax-gdb.c.
References ax_const_l(), axs_rvalue, gen_expr(), axs_value::kind, agent_expr::len, axs_value::type, and TYPE_LENGTH.
Referenced by gen_expr().
static void gen_static_field | ( | struct gdbarch * | gdbarch, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
struct type * | type, | ||
int | fieldno | ||
) | [static] |
Definition at line 1546 of file ax-gdb.c.
References ax_const_l(), axs_lvalue_memory, FIELD_LOC_KIND_PHYSADDR, gen_var_ref(), axs_value::kind, lookup_symbol(), axs_value::optimized_out, axs_value::type, TYPE_FIELD_LOC_KIND, TYPE_FIELD_STATIC_PHYSADDR, TYPE_FIELD_STATIC_PHYSNAME, TYPE_FIELD_TYPE, and VAR_DOMAIN.
Referenced by gen_struct_elt_for_reference(), gen_struct_ref_recursive(), and gen_trace_static_fields().
static int gen_struct_elt_for_reference | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
struct type * | type, | ||
char * | fieldname | ||
) | [static] |
Definition at line 1580 of file ax-gdb.c.
References _, error(), field_is_static(), expression::gdbarch, gen_maybe_namespace_elt(), gen_static_field(), internal_error(), axs_value::optimized_out, type, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD, TYPE_FIELD_NAME, TYPE_FIELD_PACKED, TYPE_N_BASECLASSES, and TYPE_NFIELDS.
Referenced by gen_aggregate_elt_ref().
static void gen_struct_ref | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
char * | field, | ||
char * | operator_name, | ||
char * | operand_name | ||
) | [static] |
Definition at line 1500 of file ax-gdb.c.
References _, axs_lvalue_memory, check_typedef(), error(), gen_deref(), gen_struct_ref_recursive(), axs_value::kind, pointer_type(), require_rvalue(), axs_value::type, type, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_TAG_NAME.
Referenced by gen_expr().
static int gen_struct_ref_recursive | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
char * | field, | ||
int | offset, | ||
struct type * | type | ||
) | [static] |
Definition at line 1435 of file ax-gdb.c.
References _, check_typedef(), CHECK_TYPEDEF, error(), field_is_static(), expression::gdbarch, gen_primitive_field(), gen_static_field(), internal_error(), axs_value::optimized_out, TYPE_BASECLASS, TYPE_BASECLASS_BITPOS, TYPE_FIELD, TYPE_FIELD_NAME, TYPE_N_BASECLASSES, and TYPE_NFIELDS.
Referenced by gen_struct_ref().
static void gen_sym_offset | ( | struct agent_expr * | ax, |
struct symbol * | var | ||
) | [static] |
Definition at line 618 of file ax-gdb.c.
References gen_offset(), and SYMBOL_VALUE.
Referenced by gen_var_ref().
struct agent_expr* gen_trace_for_expr | ( | CORE_ADDR | scope, |
struct expression * | expr, | ||
int | trace_string | ||
) | [read] |
Definition at line 2438 of file ax-gdb.c.
References ax_simple(), discard_cleanups(), expression::elts, expression::gdbarch, gen_expr(), gen_traced_pop(), make_cleanup_free_agent_expr(), new_agent_expr(), axs_value::optimized_out, agent_expr::trace_string, and agent_expr::tracing.
Referenced by agent_eval_command_one(), encode_actions_1(), and validate_actionline().
struct agent_expr* gen_trace_for_return_address | ( | CORE_ADDR | scope, |
struct gdbarch * | gdbarch, | ||
int | trace_string | ||
) | [read] |
Definition at line 2502 of file ax-gdb.c.
References ax_simple(), discard_cleanups(), gdbarch_gen_return_address(), gen_traced_pop(), make_cleanup_free_agent_expr(), new_agent_expr(), agent_expr::trace_string, and agent_expr::tracing.
Referenced by agent_eval_command_one(), and encode_actions_1().
struct agent_expr* gen_trace_for_var | ( | CORE_ADDR | scope, |
struct gdbarch * | gdbarch, | ||
struct symbol * | var, | ||
int | trace_string | ||
) | [read] |
Definition at line 2396 of file ax-gdb.c.
References ax_simple(), discard_cleanups(), do_cleanups(), gen_traced_pop(), gen_var_ref(), make_cleanup_free_agent_expr(), new_agent_expr(), axs_value::optimized_out, agent_expr::trace_string, and agent_expr::tracing.
Referenced by collect_symbol().
static void gen_trace_static_fields | ( | struct gdbarch * | gdbarch, |
struct agent_expr * | ax, | ||
struct type * | type | ||
) | [static] |
Definition at line 319 of file ax-gdb.c.
References ax_const_l(), ax_reg_mask(), ax_simple(), axs_lvalue_memory, axs_lvalue_register, check_typedef(), CHECK_TYPEDEF, field_is_static(), gen_static_field(), axs_value::kind, axs_value::optimized_out, axs_value::reg, axs_value::type, TYPE_BASECLASS, TYPE_FIELD, TYPE_LENGTH, TYPE_N_BASECLASSES, TYPE_NFIELDS, and axs_value::u.
Referenced by gen_traced_pop().
static void gen_traced_pop | ( | struct gdbarch * | gdbarch, |
struct agent_expr * | ax, | ||
struct axs_value * | value | ||
) | [static] |
Definition at line 370 of file ax-gdb.c.
References ax_const_l(), ax_reg(), ax_reg_mask(), ax_simple(), axs_lvalue_memory, axs_lvalue_register, axs_rvalue, c_textual_element_type(), check_typedef(), gen_trace_static_fields(), axs_value::kind, axs_value::reg, agent_expr::trace_string, agent_expr::tracing, axs_value::type, TYPE_CODE, TYPE_CODE_PTR, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_TARGET_TYPE, and axs_value::u.
Referenced by gen_expr(), gen_trace_for_expr(), gen_trace_for_return_address(), and gen_trace_for_var().
static void gen_usual_arithmetic | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value1, | ||
struct axs_value * | value2 | ||
) | [static] |
Definition at line 936 of file ax-gdb.c.
References ax_simple(), builtin_type::builtin_int, check_typedef(), expression::gdbarch, gen_conversion(), is_nontrivial_conversion(), max_type(), axs_value::type, TYPE_CODE, and TYPE_CODE_INT.
Referenced by gen_expr(), and gen_expr_binop_rest().
static void gen_usual_unary | ( | struct expression * | exp, |
struct agent_expr * | ax, | ||
struct axs_value * | value | ||
) | [static] |
Definition at line 819 of file ax-gdb.c.
References axs_rvalue, axs_value::kind, lookup_pointer_type(), require_rvalue(), axs_value::type, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_FUNC, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_TARGET_TYPE.
Referenced by gen_expr(), and gen_expr_binop_rest().
static void gen_var_ref | ( | struct gdbarch * | gdbarch, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
struct symbol * | var | ||
) | [static] |
Definition at line 628 of file ax-gdb.c.
References _, ax_const_l(), ax_reg(), axs_lvalue_memory, axs_lvalue_register, axs_rvalue, BLOCK_START, check_typedef(), error(), gdb_assert_not_reached, gen_fetch(), gen_frame_args_address(), gen_frame_locals_address(), gen_sym_offset(), internal_error(), axs_value::kind, LOC_ARG, LOC_BLOCK, LOC_COMPUTED, LOC_CONST, LOC_CONST_BYTES, LOC_LABEL, LOC_LOCAL, LOC_OPTIMIZED_OUT, LOC_REF_ARG, LOC_REGISTER, LOC_REGPARM_ADDR, LOC_STATIC, LOC_TYPEDEF, LOC_UNRESOLVED, LONGEST, lookup_minimal_symbol(), axs_value::optimized_out, axs_value::reg, SYMBOL_BLOCK_VALUE, SYMBOL_CLASS, SYMBOL_COMPUTED_OPS, SYMBOL_LINKAGE_NAME, SYMBOL_PRINT_NAME, SYMBOL_REGISTER_OPS, SYMBOL_TYPE, SYMBOL_VALUE, SYMBOL_VALUE_ADDRESS, axs_value::type, and axs_value::u.
Referenced by gen_expr(), gen_maybe_namespace_elt(), gen_static_field(), and gen_trace_for_var().
static int is_nontrivial_conversion | ( | struct type * | from, |
struct type * | to | ||
) | [static] |
Definition at line 912 of file ax-gdb.c.
References free_agent_expr(), gen_conversion(), agent_expr::len, and new_agent_expr().
Referenced by gen_usual_arithmetic().
static void maint_agent_printf_command | ( | char * | exp, |
int | from_tty | ||
) | [static] |
Definition at line 2694 of file ax-gdb.c.
References _, ax_print(), ax_reqs(), do_cleanups(), dont_repeat(), error(), error_no_arg(), free_format_pieces_cleanup(), gdb_stdout, gen_printf(), get_current_arch(), get_current_frame(), get_frame_pc(), make_cleanup(), make_cleanup_free_agent_expr(), overlay_debugging, parse_exp_1(), parse_format_string(), and skip_spaces_const().
Definition at line 874 of file ax-gdb.c.
References type_wider_than().
Referenced by gen_usual_arithmetic().
static struct value * maybe_const_expr | ( | union exp_element ** | pc | ) | [static, read] |
void require_rvalue | ( | struct agent_expr * | ax, |
struct axs_value * | value | ||
) |
Definition at line 765 of file ax-gdb.c.
References _, ax_reg(), axs_lvalue_memory, axs_lvalue_register, axs_rvalue, check_typedef(), error(), gen_extend(), gen_fetch(), axs_value::kind, axs_value::reg, axs_value::type, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_FUNC, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and axs_value::u.
Referenced by dwarf2_compile_expr_to_ax(), gen_cast(), gen_eval_for_expr(), gen_expr(), gen_printf(), gen_struct_ref(), gen_usual_unary(), and stap_compile_to_ax().
static int type_wider_than | ( | struct type * | type1, |
struct type * | type2 | ||
) | [static] |
Definition at line 863 of file ax-gdb.c.
References TYPE_LENGTH, and TYPE_UNSIGNED.
Referenced by gen_integral_promotions(), and max_type().