java-insns.h (enum java_code): Add op_breakpoint.
* include/java-insns.h (enum java_code): Add op_breakpoint. * include/java-interp.h (_Jv_InterpMethod): Declare breakpoint_insn. [INTERPRETER]: Declare _Jv_InterpMethod::bp_insn_slot. [!INTERPRETER]: Declare _Jv_InterpMethod::bp_insn_opcode. (install_break): Declare. * interpret.cc (breakpoint_insn): Define breakpoint insn. (compile): Add op_breakpoint to "can't happen" cases. [INTERPRETER] Initialize breakpoint insn if necessary. (install_break): New method. * interpret-run.cc: Add op_breakpoint to insn_targets. Add insn_breakpoint label. * verify.cc (branch_prepass): Add op_breakpoint to unrecognized opcodes section of switch statement. (verify_instructions_0): Likewise. From-SVN: r117734
This commit is contained in:
parent
1526c4b5b6
commit
0f546316f4
6 changed files with 65 additions and 6 deletions
|
@ -133,6 +133,14 @@ struct _Jv_LineTableEntry
|
|||
|
||||
class _Jv_InterpMethod : public _Jv_MethodBase
|
||||
{
|
||||
// Breakpoint instruction
|
||||
static pc_t breakpoint_insn;
|
||||
#ifdef DIRECT_THREADED
|
||||
static insn_slot bp_insn_slot;
|
||||
#else
|
||||
static unsigned char bp_insn_opcode;
|
||||
#endif
|
||||
|
||||
_Jv_ushort max_stack;
|
||||
_Jv_ushort max_locals;
|
||||
int code_length;
|
||||
|
@ -206,6 +214,10 @@ class _Jv_InterpMethod : public _Jv_MethodBase
|
|||
void get_line_table (jlong& start, jlong& end, jintArray& line_numbers,
|
||||
jlongArray& code_indices);
|
||||
|
||||
/* Installs a break instruction at the given code index. Returns
|
||||
the pc_t of the breakpoint or NULL if index is invalid. */
|
||||
pc_t install_break (jlong index);
|
||||
|
||||
// Gets the instruction at the given index
|
||||
pc_t get_insn (jlong index);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue