22 Commits

Author SHA1 Message Date
= 4d4b21b8d4 [maven-release-plugin] prepare for next development iteration 2018-09-04 18:47:14 +01:00
= c9ce64a498 [maven-release-plugin] prepare release robovm-2.3.5 2018-09-04 18:47:02 +01:00
Demyan Kimitsa d152b61194 Fix #309 and JDWP version downgrade to 1.5 (#315)
* fixed #309 Cannot Use Step Filters while Debugging in Eclipse
* EXCEPTION_ONLY validation fixed (root case)
* JDWP version downgraded to 1.5 as Eclipse uses features that are not supported
* robovm.version set to 2.3.5-SNAPSHOT

* fixed spelling as per https://github.com/MobiVM/robovm/pull/311#pullrequestreview-131140417
2018-07-07 21:06:10 +02:00
= 1fc1435b39 [maven-release-plugin] prepare for next development iteration 2018-06-20 16:20:13 +01:00
= 66db3309c0 [maven-release-plugin] prepare release robovm-2.3.4 2018-06-20 16:19:59 +01:00
Demyan Kimitsa 95533d3059 * fixed issue when breakpoint were not working with JVM languages other than Java (e.g. kotlin). For JDPW source file obtained from Soot is saved and returned from JDWP ReferenceType(2).SourceFile(7) command. Previously file name was built from class name and always was extended with ".java". now original file name and ext is used (#297) 2018-06-04 20:01:09 +02:00
Demyan Kimitsa 0e4805b6ac * fixed #295. compiler crashes on kotlin data classes when compiling for debug + debugger crash (#296)
* * fixed #295. if there is no debug information -- dont try to fill in variable debug structures as they will receive wrong line numbers(Integer.MAX_VALUE) that will cause compiler to crash

* * fixed: debugger crashed while trying loading class meta data if class marked as error one
2018-06-04 20:00:39 +02:00
Duke Script 6f1668d73f Enabling Maven debug options (#258)
* Enable behavior of -Drobovm.debug and -Drobovm.debugPort Maven options

* Use dependency management to define dependecy on robovm-debugger
2018-02-05 20:13:38 +01:00
Demyan Kimitsa 81c9462e53 Debugger - broken step over and crashed when using labda (#257)
* debugger: fixed bug: step over/step out cases where are broken in case there is an exception thrown (even handled one) in code that being stepped over/out. E.g. it was not possible to go through following code:
new File("/some/invalid/path").exists();
new File("/some/invalid/path").exists();

as it throws/handles internal exceptions

* debugger: fixed bug: local variable scope resolution was broken when its first unit was set to lambda invocation code generated by RoboVM compiler. as during replacement of DynamicInvokeExpr it wasn't copied line number information
2018-01-22 16:42:35 +01:00
Demyan Kimitsa 47241dd978 fixed: Debugger hangs when evaluating native objects that has no corresponding Java class loaded' (#256)
This happens when evaluating internal of `native` object in debugger (NSDictionary in my case) and bound Java class for internal objects (NSDictionary$EntrySet in my case) was not loaded by Runtime. E.g. class resolution is happening by Debugger itself.
2018-01-21 13:38:28 +01:00
Demyan Kimitsa 67d4e69a95 debugger: fixed debugger crash when resolving stack variables on arm64 (#240) 2017-12-06 12:14:47 +00:00
= 01d5bb7d82 [maven-release-plugin] prepare for next development iteration 2017-10-20 18:10:26 +01:00
= 59a6e802e4 [maven-release-plugin] prepare release robovm-2.3.3 2017-10-20 18:10:18 +01:00
dkimitsa 5a00b1a7b9 fixed source lookup problem for eclipse. was a bug in JDWP request handler as it has to return only file name without path as per spec. Idea was ok with it and looks like did some sanity check. (#223) 2017-10-17 21:02:27 +02:00
dkimitsa 98eb97bdac fixed Proxy.getProxyClass returns null for an empty interface #173, also fixed debugger that was crashing on Proxy classes (#192) 2017-08-21 12:37:08 +01:00
= ccb148d9b4 [maven-release-plugin] prepare for next development iteration 2017-08-18 10:09:21 +01:00
= 61458a39b7 [maven-release-plugin] prepare release robovm-2.3.2 2017-08-18 10:09:13 +01:00
Tom-Ski b404099634 Change to MobiVM org. Unite scm connection 2017-08-18 09:51:52 +01:00
Tom-Ski 91342fc04e add lint for debugger javadoc gen 2017-08-18 09:28:16 +01:00
dkimitsa 0b2d592fea Debugger service pack - fixed bp in static blocks and breakpoints at early code execution are working now (#186)
* Debugger: fixed not working breakpoints in static blocks

* debugger: it suspends every thread now once JDPW client/server is connected and sends VM_START event. As it there were breakpoint skipped due fact that set breakpoint request came late after code was already executed
2017-07-19 14:57:19 +01:00
dkimitsa 77ab6f5bb3 Debugger/eclipse fixes (#174)
* Debugger/Eclipse: fixed missing thread start event which caused Eclipse to catch breakpoints only during first launch, logging fixes

* Debugger/Eclipse: fixed integration with eclipse, it was not working in release build (not tested but should work)
2017-07-03 12:24:24 +02:00
dkimitsa 557af569a6 Debugger implementation (#159)
* XCode project generator + integration with Idea plugin

* added support for @IBInspectable annotation

* added IBInspectable support to XCode project generator

* reverted version to match trunk

* updated dependency in Idea pom file to include ibxcode module

* Debugger module added
Added launch plugin with arguments
Integrated to idea

* Debugger work in progress

* JDWP work in progress. Lack of class info data

* JDWP work in progress. jdb able to connect to this stub

* JDWP work in progress. more JDWP command handlers

* JDWP work in progress. added Mach-o parser to get information from binary

* JDWP work in progress. class info is parsed from mach-o data

* JDWP work in progress. field info and method info parsing added

* JDWP work in progress. Field/Method/Class info reworked a bit

* JDWP work in progress. Capabilities handlers added

* debugger work in progress

* debugger work in progress

* debugger work in progress

* debugger work in progress - picked list of interfaces for class

* debugger work in progress - added injection of bcHookInstrumented calls

* debugger work in progress - JDWP event filtering reworked to keep order of modifiers

* debugger work in progress - huge rethink/rework

* debugger work in progress - adapting shutdowns, partial rework

* debugger work in progress - added basic synchronization around state

* debugger work in progress - class info reworked to include array and primitive ones, not tested to be runnable

* debugger work in progress - rework in progress. finding the final structure

* debugger work in progress - thread part, can compile now

* debugger work in progress - day of instance variables

* debugger work in progress - thread/threadgroup/string instances

* debugger work in progress - added stubs to missing JDPW commands

* debugger work in progress - missing handlers (stubs) and instantiation of string and array

* debugger work in progress - fixed broken compilation

* debugger work in progress - JDPW handlers implementation in progress

* debugger work in progress - instance get/set values added

* debugger work in progress - another JDPW handlers implemented

* JDPW ref type interfaces implemented

* JDPW ref type clazz instance implemented

* JDPW ref type: handlers *withSignatures implemented to return empty string

* JDPW class type: set static fields implemented

* debugger work in progress - using llvm.dbg.declare is able to deliver DWARF info about variables. there are problems in resolving variables as it is not clear how to get some Locals. Probably there is need to look in SOOT for modification/support. Also there is lot of data reported wrong: e.g. arguments are reported as auto vars and there is only one dummy type reported

* debugger work in progress - LLVM extended with method to get back DWARF debug info from object five. !!!! WARNING !!!! .dylib is not included into commit yet !!!!

* changes to core files:
 1) Clazz extended with api to keep attachements inside
 2) CompilePluggin.afterObjectFile extended to pass ObjectFile itself
 3) ClassCompiler plugin reworked to generate debug information object file

 local auto variables looks to be mess due to data received from Soot doesn't work as expected (e.g. start/end units point to wrong locations)
 some local variable location was not clear how to resolve. as due optimization there is multiple allocas for same variable index (that soot reports for local variables)
 also there are bunch of issues with native method that got into processing but shall not (currently results in warnings)

* debug info o files linked to binary now

* debugger work in progress - stack frame implementation in progress

* debugger work in progress - thread related JDWP handles implemented

* New upstream simlauncher binary, should support XCode 8.3.

* Fix of following Tom-Ski comment (#119)

Some of the updates to ios 10 are a little annoying if you want to support anything lower than 10
Due to inheritance trees, Im not sure if anything can be done about it
For example, GKLocalPlayer has been around since 4.1, but GKBasePlayer (which GKLocalPlayer now inherits from) is a 10+ api only. This causing a crash when loading up GKLocalPlayer on versions lower than 10+ as the GKBasePlayer class is not found
In this specific case, you can bind GKLocalPlayer and ignore the java side inheritance to brand new breaking API, to be compliant on all ios versions

* Ignore linker warnings

* debugger start up - reworked memory reader to handle segments as it looks like it requires to read __CODE segment. Also small fixes applied to start everything

* debugger start up - fixed bug when there was no errno in log from hooks

* debugger start up - fixed lot of runtime bugs, currently debugger is able to fetch string, initialize thread objects

* debugger start up - added llvm.used to debug data genaration too keep debug data from being sliced out by linker as there is no active reference to it in code

* debugger start up - fixed bugs in debug reading and related buffer code (debug info is now readable)

* debugger start up - exception are ignored in VM/BC till internal initialization of VM is complete as required to fix wait_for_resume (currently any exception during initialization breaks it)

* debugger start up - reworked method signature (short form now)

* debugger start up - tonns of fixes: connecting hooks and jdwp, jdb is able to work with simple requests

* debugger start up - fixed event delivery to JDWP

* debugger start up - breakpoint set implemented and working, stepping implemented (not tested), local variables are not working, in progress

* debugger start up - reverted method info to mark it as native in case there is no debug information about it. this will keep debugger client away from trying to fetch missing information and fail

* debugger start up - fixed output of debug information

* debugger start up - fixed injection to not incert hooksInstrumented before arguments got copiet to frame, arguments are now detected and reported to DWARF, variables are sorted by byteCodeIndex this keeps arguments on top of the list

* debugger start up - local variables are kind of working, stepping working and lot of minor fixes

* debugger start up - integrated with idea, completely buggy but runnable

* debugger start up - invoke method implemented and wokring as toString() in idea

* debugger start up - ugly bug with hooksInstrumented line number offset

* debugger start up - another bp bug:  attach line number metadata otherwise stack entry will have previous line number index

* debugger start up - fixed stop on class load filter match (idea is happy) implemented new instance call

* debugger start up - fixed operations with arrays

* debugger start up - fixed release run (was broken by debugger launcher)

* debugger start up - fixed debugger hands on bad access why getting to unallocated memory

* debugger start up - sp-fp emit changed in way to export the value as global (to be able to pick with debugger from binary)

* debugger start up - trick to keep .spfpoffset variables from being discarded by linker

* debugger start up - forcing llvm to emit sp-fp offset

* debugger start up - debugger can start on device now

* debugger start up - implemented sp-fp offset for arm targets

* debugger start up - fixed bug of debugger logger. with each run it was adding new handles and doubles number of lines being printed

* debugger start up - compiler plugin was extended with helloClass method to allow plugin to evaluate unmodified class. Fixed issue when tonns of warning were risen on debug info for method not found

* fixed bug when field value was not retrieved if declared in superclass

* debugger start up - fixed start on devices (these changes looks to be reverted)

* debugger start up - fixed read out of locals on arm32 platform (these changes looks to be reverted and lost previous time)

* debugger start up - switched to own soot fork that solves variable resolution, fixed issue with crash when breakpoint was set before arguments is copied into local variable space

* Merge branch 'master' into debugger, updated version to 2.3.2-SNAPSHOT

* master:
  Set next development version of Gradle plugin, 2.3.2-SNAPSHOT
  Set release version of Gradle plugin, 2.3.1
  Set next development version of IDEA plugin, 2.3.2
  Set release version of IDEA plugin, 2.3.1
  Set next development version of Eclipse plugin, 2.3.2
  Set release version of Eclipse plugin, 2.3.1
  [maven-release-plugin] prepare for next development iteration
  [maven-release-plugin] prepare release robovm-2.3.1
  Fixing #127 <stripArchives> config ignored (#133)
  Exposing dump-intermediates builder option to gradle plugin configuration (#131)
  Dirty fix for #126, waiting if libimobiledvice fixes https://github.com/libimobiledevice/ideviceinstaller/issues/70
  Ignore linker warnings
  New upstream simlauncher binary, should support XCode 8.3.
  removed resource rules as it causes “invalid resource directory (directory or signature have been modified)” error on frameworks with resources signed (#120)
  Xcode project generator, IBInspectable annotation, for Idea plugin only (check build menu) (#114)
  Fix of following Tom-Ski comment (#119)

# Conflicts:
#	plugins/ibxcode/pom.xml
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/IBException.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/IBXcodeProject.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/Utils.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/consts/AnnotationsTypes.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/consts/ClassNames.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/consts/StringConsts.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/export/FrameworkExportData.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/export/IBActionExportMemberItem.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/export/IBClassExportData.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/export/IBOutletCollectionExportMemberItem.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/export/IBOutletExportMemberItem.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/export/IClassExportMemberItem.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/export/XCodeProjectExporter.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/parser/IBClassHierarchyData.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/parser/IBClassHierarchyResolver.java
#	plugins/ibxcode/src/main/java/org/robovm/ibxcode/parser/IBClassMemberParser.java
#	plugins/idea/pom.xml
#	plugins/idea/src/main/java/org/robovm/idea/actions/GenerateXCodeProjectAction.java
#	plugins/idea/src/main/java/org/robovm/idea/ibxcode/RoboVmIbXcodeProjectTask.java
#	pom.xml

* IDEA: fixed following issues:
- on IDEA 2017 it was not possible to create new gradle based project
- due not calling setupRootModel it was causing extra module mess to be created

* IDEA: fixed issue #115 by removing any dependencies to android sdk

* debugger -- fixed recursive call _rvmHookInstrumented as it was calling java classes inside which triggered _rvmHookInstrumented to be called and all this caused stack overflow error. reproduced during step-in operations

* debugger -- fixed:
- stack frame variable can be set (bug)
- array creation and all related with it bugs

* debugger -- forced to ignore instrumented hooks during stack unwinding and debugger initiate calls to JVM (such as create instance, method invoke)

* blocks implementation -- added signature generation to blocks as in some cases it crashes with message "Block was not compiled using a compiler that inserts type information about arguments"

* IDEA -- fixed resource unpack to maintain the timestamp same as it was in tar, otherwise on each launch idea will rebuild all classes in case of snapshot builds

* debugger -- fixed resume VM handler.

* debugger: fixed crash when trying instantiating result of invoke() that return null pointer

* debugger: copyright time

* retroperspective: this change is missing but present in master, check https://github.com/MobiDevelop/robovm/commit/3d0d71ebf76d53e801eff864bdda420ffcc58114

* debugger: fixed crash array get Object element on 64bit target

* debugger: corrected getter name

* Fixed wrong TypeTag returned once breakpoint is hit that cause eclipse to complain. +some more copyrights
2017-06-24 20:54:54 +02:00