From 50ac25005f8b8c8bb91d74a6f1895bc5e11e8680 Mon Sep 17 00:00:00 2001 From: Kyle Galloway Date: Tue, 15 Aug 2006 20:40:10 +0000 Subject: java-interp.h (_Jv_InterpMethod::run_debug): New method. 2006-08-15 Kyle Galloway * include/java-interp.h (_Jv_InterpMethod::run_debug): New method. * interpret.cc: Added placeholder for debug variable type info to STORE* macros. (_Jv_InterpMethod::run_debug): New method. (_Jv_InterpMethod::run_sync_object_debug): New method. (_Jv_InterpMethod::run_sync_class_debug): New method. (_Jv_InterpMethod::run_normal_debug): New method. (_Jv_InterpMethod::run_class_debug): New method. (_Jv_InterpMethod::ncode ()): Changed to select either debug or normal versions of these functions. * interpret-run.cc: New file, holds contents of old _Jv_InterpMethod::run method. * stacktrace.cc (_Jv_StackTrace::UnwindTraceFn): Changed to select appropriate function for debug or normal mode. From-SVN: r116167 --- libjava/include/java-interp.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'libjava/include') diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 58d2e8c..efb8b41 100644 --- a/libjava/include/java-interp.h +++ b/libjava/include/java-interp.h @@ -176,21 +176,31 @@ class _Jv_InterpMethod : public _Jv_MethodBase static void run_synch_object (ffi_cif*, void*, ffi_raw*, void*); static void run_class (ffi_cif*, void*, ffi_raw*, void*); static void run_synch_class (ffi_cif*, void*, ffi_raw*, void*); + + static void run_normal_debug (ffi_cif*, void*, ffi_raw*, void*); + static void run_synch_object_debug (ffi_cif*, void*, ffi_raw*, void*); + static void run_class_debug (ffi_cif*, void*, ffi_raw*, void*); + static void run_synch_class_debug (ffi_cif*, void*, ffi_raw*, void*); - static void run (void*, ffi_raw *, _Jv_InterpMethod *); + static void run (void *, ffi_raw *, _Jv_InterpMethod *); + static void run_debug (void *, ffi_raw *, _Jv_InterpMethod *); + + // Returns source file line number for given PC value, or -1 if line // number info is unavailable. int get_source_line(pc_t mpc); + + #ifdef DIRECT_THREADED // Convenience function for indexing bytecode PC/insn slots in // line tables for JDWP jlong insn_index (pc_t pc); #endif - - public: - + + public: + /* Get the line table for this method. * start is the lowest index in the method * end is the highest index in the method -- cgit v1.1