-
Notifications
You must be signed in to change notification settings - Fork 133
Implementing a Debugger
##Status and Plans Currently the debugger is in development stage. We want to use the ShadowFrames implementation for debugging purposes.
C-Function: https://github.com/MobiDevelop/robovm/blob/master/compiler/vm/core/src/shadowframes.c
Java Compiler Plugin: https://github.com/MobiDevelop/robovm/blob/master/compiler/compiler/src/main/java/org/robovm/compiler/plugin/shadowframe/ShadowFramePlugin.java
The plan is to extend the ShadowFramePlugin to pass information about stack variables to the runtime, and store it in the ShadowFrame struct.
RoboVM comes with a Soft-Debugger which is responsible for debugging and breaking the execution of an app. The Soft-Debugger is implemented in hooks.c https://github.com/MobiDevelop/robovm/blob/master/compiler/vm/core/src/hooks.c
hooks.c implements it's own debugging protocol, on top of which a JDWP debugger has to be implemented.
A simple server for the debugging protocol can be found at https://github.com/florianf/robovm/commit/1b23a00587aee1fe04a21e21296125dd9b5f15aa
##Current Status There is a separate branch console_debugger in which the work takes place. Current focus is in implementing a simple console debugger.
##How-To help
- Implement a stub JDWP debugging server
- Implement a stub debugging component which interacts with the running RoboVM application
- Extend the ShadowFrame implementation for passing of local and global variable informations
- Developer Guide
- Changelog
- What we're currently working on and where you can help
- F.A.Q.
- Are non libGDX iOS apps supported?
- Is there a debugger available?
- How are bindings to existing native frameworks generated?
- Who is behind this project?
- Are there any alternatives to RoboVM?
- Can RoboVM be built on Linux?
- My app is crashing without a stacktrace, what should I do?
- Is XCode interface builder supported?
- Memory Management Guide
- Howto Create an Asset Catalog for XCode 9 Appstore Submission?
- Generate Admob Bindings with bro gen Tutorial