Starting from Xcode13 and for ios15 target Apple have changed a binary and its address references are mixed with meta data that doesn't allow debugger to parse RoboVM structures.
This results in debugger crash on startup:
[ERROR] Couldn't start application
java.lang.IllegalArgumentException: there is no region for addr @10000101effaa0
at org.robovm.debugger.utils.bytebuffer.CompositeDataBuffer.setPosition(CompositeDataBuffer.java:37)
this PR adds support for chained fixup based on DYLD sources. It includes:
parsed LC_DYLD_CHAINED_FIXUPS, pointer being fixed up to fixups organized in chains. Code based on dyld code, mostly its a port of
MachOLoaded::fixupAllChainedFixups method;
support for LC_DYLD_EXPORTS_TRIE -- another way how exports organized in tries.
byte readers/writers extended a bit to support changes;
all data that is available in binary is accessible to debugger now through composite reader. There seems to be changes as const data is being put to new segments.
Starting from Xcode13 and for ios15 target Apple have changed a binary and its address references are mixed with meta data that doesn't allow debugger to parse RoboVM structures. This results in debugger crash on startup:
this PR adds support for chained fixup based on DYLD sources. It includes:
MachOLoaded::fixupAllChainedFixups
method;