gdb/gdbserver/ax.h - gdb
Data types defined
Macros defined
Source code
- #if !defined (AX_H)
- #define AX_H 1
- #include "regcache.h"
- #ifdef IN_PROCESS_AGENT
- extern int debug_agent;
- #define debug_threads debug_agent
- #endif
- struct traceframe;
- enum eval_result_type
- {
- expr_eval_no_error,
- expr_eval_empty_expression,
- expr_eval_empty_stack,
- expr_eval_stack_overflow,
- expr_eval_stack_underflow,
- expr_eval_unhandled_opcode,
- expr_eval_unrecognized_opcode,
- expr_eval_divide_by_zero,
- expr_eval_invalid_goto
- };
- struct agent_expr
- {
- int length;
- unsigned char *bytes;
- };
- #ifndef IN_PROCESS_AGENT
- struct agent_expr *gdb_parse_agent_expr (char **actparm);
- void gdb_free_agent_expr (struct agent_expr *aexpr);
- char *gdb_unparse_agent_expr (struct agent_expr *aexpr);
- void emit_prologue (void);
- void emit_epilogue (void);
- enum eval_result_type compile_bytecodes (struct agent_expr *aexpr);
- #endif
- struct eval_agent_expr_context
- {
-
- struct regcache *regcache;
-
- struct traceframe *tframe;
-
- struct tracepoint *tpoint;
- };
- enum eval_result_type
- gdb_eval_agent_expr (struct eval_agent_expr_context *ctx,
- struct agent_expr *aexpr,
- ULONGEST *rslt);
- struct emit_ops
- {
- void (*emit_prologue) (void);
- void (*emit_epilogue) (void);
- void (*emit_add) (void);
- void (*emit_sub) (void);
- void (*emit_mul) (void);
- void (*emit_lsh) (void);
- void (*emit_rsh_signed) (void);
- void (*emit_rsh_unsigned) (void);
- void (*emit_ext) (int arg);
- void (*emit_log_not) (void);
- void (*emit_bit_and) (void);
- void (*emit_bit_or) (void);
- void (*emit_bit_xor) (void);
- void (*emit_bit_not) (void);
- void (*emit_equal) (void);
- void (*emit_less_signed) (void);
- void (*emit_less_unsigned) (void);
- void (*emit_ref) (int size);
- void (*emit_if_goto) (int *offset_p, int *size_p);
- void (*emit_goto) (int *offset_p, int *size_p);
- void (*write_goto_address) (CORE_ADDR from, CORE_ADDR to, int size);
- void (*emit_const) (LONGEST num);
- void (*emit_call) (CORE_ADDR fn);
- void (*emit_reg) (int reg);
- void (*emit_pop) (void);
- void (*emit_stack_flush) (void);
- void (*emit_zero_ext) (int arg);
- void (*emit_swap) (void);
- void (*emit_stack_adjust) (int n);
-
- void (*emit_int_call_1) (CORE_ADDR fn, int arg1);
-
- void (*emit_void_call_2) (CORE_ADDR fn, int arg1);
-
- void (*emit_eq_goto) (int *offset_p, int *size_p);
- void (*emit_ne_goto) (int *offset_p, int *size_p);
- void (*emit_lt_goto) (int *offset_p, int *size_p);
- void (*emit_le_goto) (int *offset_p, int *size_p);
- void (*emit_gt_goto) (int *offset_p, int *size_p);
- void (*emit_ge_goto) (int *offset_p, int *size_p);
- };
- extern CORE_ADDR current_insn_ptr;
- extern int emit_error;
- #endif