| ASF |
#449251 |
Sat Sep 23 14:33:03 UTC 2006 |
geirm |
HARMONY-1555
After lots of merging with other submitted JIRAs I've created this patch to bind them all :). I can now step in when
debugging a simple application in eclipse on JIT!!
The following problems were fixed in this patch:
- Fixed raise area status for calling method_exit from exception throwing function
- Fixed next bytecode prediction from native code.The bytecode which should be marked for single stepping should be
the next one after the currently stopped in Java
- Fixed single stepping in interpreter. Single step flag should be cleared for every bytecode. Also created M2N
transition for many JVMTI calls into VM like field watching, breakpoint and single step.
- Fixed prediction of invokevirtual and invokeinterface bytecodes. This is a very tricky part, it parses the JIT
generated code
- Fixed prediction of return bytecodes which may return to a tail of invoke* instruction based on information from
stack_iterator
- Fixed disassembler to ignore AL, XMM and other registers which aren't needed
- Fixed disassembler constructors to initialize all fields
- Changed disassembler interface to allow getting register information for parsed instruction
- Fixed NT debugging style from int3 to CLI which eases debugging JVMTI breakpoints under VS.NET debugger. This is by
far more convenient when debugging the debugger because otherwise VC.NET studio reacts to int3 as if it is a runtime
breakpoint and doesn't allow the application to receive the exception.
- Fixed class loader class_get_method_from_vt_offset function to return correct information
- Fixed breakpoints implementation to work correctly for indirect jump/call. This is also a tricky part, it parses
code for invokevirtual bytecode which VM generates.
- Added missing synchronization locks for interprter handler of breakpoints
On interpreter stepping seems to work ok (to use interpreter specify -Xint in VM option in debugging dialog). Step
out on JIT still doesn't work however...
To let eclipse debugging it is necessary to build JDWP agent in HARMONY-1410 and place DLL/lib*.so files in drlvm bin
directory.
W00t!
Ubuntu 6 - smoke, c-unit
|