NAME=dyldcache loading
FILE=bins/dyldcache/dyld_shared_cache_arm64-macOS
CMDS=<<EOF
i
is
iS
iH~{}
oml
pi 4@ sym._what_is_cool
EOF
EXPECT=<<EOF
fd       3
file     bins/dyldcache/dyld_shared_cache_arm64-macOS
size     0x34000
humansz  208K
mode     r-x
format   dyldcache
iorw     false
block    0x100
type     production
arch     arm
cpu      N/A
baddr    0x180000000
binsz    0x00034000
bintype  N/A
bits     64
retguard false
class    dyldcache
compiler N/A
dbg_file N/A
endian   LE
hdr.csum N/A
guid     857bce1a017e34649909d58ee21cf8dc
intrp    N/A
laddr    0x00000000
lang     c
machine  arm
maxopsz  4
minopsz  4
os       macOS
cc       N/A
pcalign  4
rpath    N/A
subsys   xnu
stripped false
crypto   false
havecode true
va       true
sanitiz  false
static   true
linenum  false
lsyms    false
canary   false
PIE      false
RELROCS  false
NX       false
nth paddr      vaddr       bind   type size lib name          
--------------------------------------------------------------
0   0x00004f60 0x180004f60 GLOBAL FUNC 0        _func_in_liba
1   0x00004f9c 0x180004f9c GLOBAL FUNC 0        _what_is_cool
0   0x00008fa0 0x180008fa0 GLOBAL FUNC 0        _func_in_libb
paddr      size vaddr       vsize align perm name                                      type flags 
--------------------------------------------------------------------------------------------------
0x00004f60 0x48 0x180004f60 0x48  0x0   -r-x lib_liba-1.0.dylib.0.__TEXT.__text             
0x00004fa8 0x6  0x180004fa8 0x6   0x0   -r-x lib_liba-1.0.dylib.1.__TEXT.__cstring          
0x00004fb0 0x50 0x180004fb0 0x50  0x0   -r-x lib_liba-1.0.dylib.2.__TEXT.__unwind_info      
0x00008fa0 0x18 0x180008fa0 0x18  0x0   -r-x lib_libb-1.0.dylib.0.__TEXT.__text             
0x00008fb8 0x48 0x180008fb8 0x48  0x0   -r-x lib_libb-1.0.dylib.1.__TEXT.__unwind_info      
{
  "version": "<940",
  "header": {
    "magic": "dyld_v1   arm64",
    "mappingOffset": 320,
    "mappingCount": 3,
    "imagesOffset": 656,
    "imagesCount": 2,
    "dyldBaseAddress": 0,
    "codeSignatureOffset": 196608,
    "codeSignatureSize": 16384,
    "slideInfoOffset": 0,
    "slideInfoSize": 0,
    "localSymbolsOffset": 0,
    "localSymbolsSize": 0,
    "uuid": "857bce1a017e34649909d58ee21cf8dc",
    "cacheType": "production",
    "branchPoolsOffset": 0,
    "branchPoolsCount": 0,
    "accelerateInfoAddr": 0,
    "accelerateInfoSize": 0,
    "imagesTextOffset": 720,
    "imagesTextCount": 2,
    "patchInfoAddr": 6509723956,
    "patchInfoSize": 80,
    "otherImageGroupAddrUnused": 0,
    "otherImageGroupSizeUnused": 0,
    "progClosuresAddr": 6509740032,
    "progClosuresSize": 0,
    "progClosuresTrieAddr": 6509740032,
    "progClosuresTrieSize": 8,
    "platform": 1,
    "formatVersion": 10,
    "dylibsExpectedOnDisk": 0,
    "simulator": 0,
    "locallyBuiltCache": 1,
    "builtFromChainedFixups": 0,
    "padding": 0,
    "sharedRegionStart": 6442450944,
    "sharedRegionSize": 4294967296,
    "maxSlide": 2147385344,
    "dylibsImageArrayAddr": 6509723648,
    "dylibsImageArraySize": 240,
    "dylibsTrieAddr": 6509723888,
    "dylibsTrieSize": 68,
    "otherImageArrayAddr": 0,
    "otherImageArraySize": 0,
    "otherTrieAddr": 0,
    "otherTrieSize": 0,
    "mappingWithSlideOffset": 488,
    "mappingWithSlideCount": 3
  },
  "slideInfo": [
    {
      "start": 98304,
      "end": 114688,
      "version": 2,
      "slide": 0,
      "page_starts_count": 4,
      "page_extras_count": 0,
      "delta_mask": 72056494526300160,
      "value_mask": 18374687579183251455,
      "value_add": 0,
      "delta_shift": 38,
      "page_size": 4096
    }
  ],
  "images": [
    {
      "uuid": "ccbf29d455693a1592314e14d41a542a",
      "address": 6442455040,
      "textSegmentSize": 16384,
      "path": "/usr/lib/liba-1.0.dylib",
      "name": "liba-1.0.dylib"
    },
    {
      "uuid": "60d2f3d644a2391087503a56a3d8ff07",
      "address": 6442471424,
      "textSegmentSize": 16384,
      "path": "/usr/lib/libb-1.0.dylib",
      "name": "libb-1.0.dylib"
    }
  ]
}
 1 fd: 4 +0x00000000 0x180000000 - 0x180017fff r-x vmap.cache_map.0
 2 fd: 4 +0x00018000 0x182018000 - 0x18201bfff r-- vmap.cache_map.1
 3 fd: 4 +0x0001c000 0x18401c000 - 0x18402ffff r-- vmap.cache_map.2
adrp x0, 0x180004000
add x0, x0, 0xfa8
ret
ldpsw x18, x26, [x11, -0x30]
EOF
RUN

NAME=dyldcache filter
FILE=--
CMDS=<<EOF
env RZ_DYLDCACHE_FILTER=liba-1.0.dylib
o bins/dyldcache/dyld_shared_cache_arm64-macOS
i
is
iS
iH~{}
oml
pi 4@ sym._what_is_cool
EOF
EXPECT=<<EOF
fd       3
file     bins/dyldcache/dyld_shared_cache_arm64-macOS
size     0x34000
humansz  208K
mode     r-x
format   dyldcache
iorw     false
block    0x100
type     production
arch     arm
cpu      N/A
baddr    0x180000000
binsz    0x00034000
bintype  N/A
bits     64
retguard false
class    dyldcache
compiler N/A
dbg_file N/A
endian   LE
hdr.csum N/A
guid     857bce1a017e34649909d58ee21cf8dc
intrp    N/A
laddr    0x00000000
lang     c
machine  arm
maxopsz  4
minopsz  4
os       macOS
cc       N/A
pcalign  4
rpath    N/A
subsys   xnu
stripped false
crypto   false
havecode true
va       true
sanitiz  false
static   true
linenum  false
lsyms    false
canary   false
PIE      false
RELROCS  false
NX       false
nth paddr      vaddr       bind   type size lib name          
--------------------------------------------------------------
0   0x00004f60 0x180004f60 GLOBAL FUNC 0        _func_in_liba
1   0x00004f9c 0x180004f9c GLOBAL FUNC 0        _what_is_cool
paddr      size vaddr       vsize align perm name                                      type flags 
--------------------------------------------------------------------------------------------------
0x00004f60 0x48 0x180004f60 0x48  0x0   -r-x lib_liba-1.0.dylib.0.__TEXT.__text             
0x00004fa8 0x6  0x180004fa8 0x6   0x0   -r-x lib_liba-1.0.dylib.1.__TEXT.__cstring          
0x00004fb0 0x50 0x180004fb0 0x50  0x0   -r-x lib_liba-1.0.dylib.2.__TEXT.__unwind_info      
{
  "version": "<940",
  "header": {
    "magic": "dyld_v1   arm64",
    "mappingOffset": 320,
    "mappingCount": 3,
    "imagesOffset": 656,
    "imagesCount": 2,
    "dyldBaseAddress": 0,
    "codeSignatureOffset": 196608,
    "codeSignatureSize": 16384,
    "slideInfoOffset": 0,
    "slideInfoSize": 0,
    "localSymbolsOffset": 0,
    "localSymbolsSize": 0,
    "uuid": "857bce1a017e34649909d58ee21cf8dc",
    "cacheType": "production",
    "branchPoolsOffset": 0,
    "branchPoolsCount": 0,
    "accelerateInfoAddr": 0,
    "accelerateInfoSize": 0,
    "imagesTextOffset": 720,
    "imagesTextCount": 2,
    "patchInfoAddr": 6509723956,
    "patchInfoSize": 80,
    "otherImageGroupAddrUnused": 0,
    "otherImageGroupSizeUnused": 0,
    "progClosuresAddr": 6509740032,
    "progClosuresSize": 0,
    "progClosuresTrieAddr": 6509740032,
    "progClosuresTrieSize": 8,
    "platform": 1,
    "formatVersion": 10,
    "dylibsExpectedOnDisk": 0,
    "simulator": 0,
    "locallyBuiltCache": 1,
    "builtFromChainedFixups": 0,
    "padding": 0,
    "sharedRegionStart": 6442450944,
    "sharedRegionSize": 4294967296,
    "maxSlide": 2147385344,
    "dylibsImageArrayAddr": 6509723648,
    "dylibsImageArraySize": 240,
    "dylibsTrieAddr": 6509723888,
    "dylibsTrieSize": 68,
    "otherImageArrayAddr": 0,
    "otherImageArraySize": 0,
    "otherTrieAddr": 0,
    "otherTrieSize": 0,
    "mappingWithSlideOffset": 488,
    "mappingWithSlideCount": 3
  },
  "slideInfo": [
    {
      "start": 98304,
      "end": 114688,
      "version": 2,
      "slide": 0,
      "page_starts_count": 4,
      "page_extras_count": 0,
      "delta_mask": 72056494526300160,
      "value_mask": 18374687579183251455,
      "value_add": 0,
      "delta_shift": 38,
      "page_size": 4096
    }
  ],
  "images": [
    {
      "uuid": "ccbf29d455693a1592314e14d41a542a",
      "address": 6442455040,
      "textSegmentSize": 16384,
      "path": "/usr/lib/liba-1.0.dylib",
      "name": "liba-1.0.dylib"
    },
    {
      "uuid": "60d2f3d644a2391087503a56a3d8ff07",
      "address": 6442471424,
      "textSegmentSize": 16384,
      "path": "/usr/lib/libb-1.0.dylib",
      "name": "libb-1.0.dylib"
    }
  ]
}
 1 fd: 4 +0x00000000 0x180000000 - 0x180017fff r-x vmap.cache_map.0
 2 fd: 4 +0x00018000 0x182018000 - 0x18201bfff r-- vmap.cache_map.1
 3 fd: 4 +0x0001c000 0x18401c000 - 0x18402ffff r-- vmap.cache_map.2
adrp x0, 0x180004000
add x0, x0, 0xfa8
ret
ldpsw x18, x26, [x11, -0x30]
EOF
RUN

NAME=dyldcache arm64 with objc
FILE=bins/dyldcache/dyld_shared_cache_arm64-macOS-objc
CMDS=<<EOF
i
echo --
ic
icf Test
icm Test
icf __NSUnrecognizedTaggedPointer
icm __NSUnrecognizedTaggedPointer
echo --
pxr 8 @ section.lib_libhello_1.0.dylib.11.__DATA_CONST.__objc_classlist
EOF
EXPECT=<<EOF
fd       3
file     bins/dyldcache/dyld_shared_cache_arm64-macOS-objc
size     0x98000
humansz  608K
mode     r-x
format   dyldcache
iorw     false
block    0x100
type     production
arch     arm
cpu      N/A
baddr    0x180000000
binsz    0x00098000
bintype  N/A
bits     64
retguard false
class    dyldcache
compiler N/A
dbg_file N/A
endian   LE
hdr.csum N/A
guid     0051c062211e3a669af7d590307d245c
intrp    N/A
laddr    0x00000000
lang     objc
machine  arm
maxopsz  4
minopsz  4
os       macOS
cc       N/A
pcalign  4
rpath    N/A
subsys   xnu
stripped false
crypto   false
havecode true
va       true
sanitiz  false
static   true
linenum  false
lsyms    false
canary   false
PIE      false
RELROCS  false
NX       false
--
address     min         max         name                          super    
---------------------------------------------------------------------------
0x182068040 0x1800189f8 0x180018b90 Test                          NSObject
0x18206a028 0x18003aa78 0x18003aa94 Object                        Object
0x18206a050 0x18206a050 0x18206a050 __IncompleteProtocol          NSObject
0x18206a0a0 0x18003aa98 0x18003ab98 Protocol                      NSObject
0x18206a140 0x18003e8dc 0x18003e8e4 __NSUnrecognizedTaggedPointer NSObject
0x18206a0f0 0x18003cfc4 0x18003d788 NSObject                      NSObject
address     index class flags name                  type                
------------------------------------------------------------------------
----------  0     Test        isa                   struct objc_class *
0x182068038 1     Test        Test::(ivar)someField i
address     index class flags name                         
-----------------------------------------------------------
0x1800189f8 0     Test        init
0x180018a1c 1     Test  c     someStaticMethod
0x180018a58 2     Test        methodWithoutArgs
0x180018ab0 3     Test        methodWithOneArg:
0x180018b0c 4     Test        methodWithTwoArgs:secondArg:
0x180018b90 5     Test        methodWithReturn
address index class flags name type 
------------------------------------
address     index class                         flags name        
------------------------------------------------------------------
0x18003e8dc 0     __NSUnrecognizedTaggedPointer       retain
0x18003e8e0 1     __NSUnrecognizedTaggedPointer       release
0x18003e8e4 2     __NSUnrecognizedTaggedPointer       autorelease
--
0x182064028 0x0000000182068068   h....... @ section.lib_libhello_1.0.dylib.11.__DATA_CONST.__objc_classlist 6476431464 lib_libhello-1.0.dylib.17.__DATA.__objc_data class Test R 0x182068040
EOF
RUN

NAME=dyldcache arm64e with objc
FILE=bins/dyldcache/dyld_shared_cache_arm64e-macOS-objc
CMDS=<<EOF
i
echo --
ic
icf Test
icm Test
icf NSObject
icm NSObject
echo --
pxr 8 @ section.lib_libhello_1.0.dylib.8.__DATA_CONST.__objc_classlist
EOF
EXPECT=<<EOF
fd       3
file     bins/dyldcache/dyld_shared_cache_arm64e-macOS-objc
size     0xa8000
humansz  672K
mode     r-x
format   dyldcache
iorw     false
block    0x100
type     production
arch     arm
cpu      N/A
baddr    0x180000000
binsz    0x000a8000
bintype  N/A
bits     64
retguard false
class    dyldcache
compiler N/A
dbg_file N/A
endian   LE
hdr.csum N/A
guid     b3d4bd16c88a378c961fcfefb34344b9
intrp    N/A
laddr    0x00000000
lang     objc
machine  arm
maxopsz  4
minopsz  4
os       macOS
cc       N/A
pcalign  4
rpath    N/A
subsys   xnu
stripped false
crypto   false
havecode true
va       true
sanitiz  false
static   true
linenum  false
lsyms    false
canary   false
PIE      false
RELROCS  false
NX       false
--
address     min         max         name                          super    
---------------------------------------------------------------------------
0x184078000 0x180018a14 0x180018bbc Test                          NSObject
0x184079098 0x18003e224 0x18003e240 Object                        Object
0x1840790c0 0x1840790c0 0x1840790c0 __IncompleteProtocol          NSObject
0x184079110 0x18003e244 0x18003e3b4 Protocol                      NSObject
0x1840791b0 0x180042ac8 0x180042ad0 __NSUnrecognizedTaggedPointer NSObject
0x184079160 0x180040eb8 0x180042ac4 NSObject                      NSObject
address     index class flags name                  type                
------------------------------------------------------------------------
----------  0     Test        isa                   struct objc_class *
0x18206c038 1     Test        Test::(ivar)someField i
address     index class flags name                         
-----------------------------------------------------------
0x180018a14 0     Test        init
0x180018a38 1     Test  c     someStaticMethod
0x180018a78 2     Test        methodWithoutArgs
0x180018ad4 3     Test        methodWithOneArg:
0x180018b34 4     Test        methodWithTwoArgs:secondArg:
0x180018bbc 5     Test        methodWithReturn
address     index class    flags name                                 type                
------------------------------------------------------------------------------------------
0x18206d1c4 0     NSObject       NSObject::(ivar)isa                  #
----------  1     NSObject       NSObject::(property)debugDescription 
----------  2     NSObject       NSObject::(property)description      
----------  3     NSObject       NSObject::(property)hash             
----------  4     NSObject       NSObject::(property)superclass       
----------  5     NSObject       isa                                  struct objc_class *
address     index class    flags name                                   
------------------------------------------------------------------------
0x180040eb8 0     NSObject c     mutableCopyWithZone:
0x180040ebc 1     NSObject c     mutableCopy
0x180040ec0 2     NSObject c     copyWithZone:
0x180040ec4 3     NSObject c     copy
0x180040ec8 4     NSObject c     zone
0x180040ecc 5     NSObject c     dealloc
0x180040ed0 6     NSObject c     init
0x180040ed4 7     NSObject c     allocWithZone:
0x180040ed8 8     NSObject c     alloc
0x180040ee0 9     NSObject c     retainCount
0x180040ee8 10    NSObject c     autorelease
0x180040eec 11    NSObject c     release
0x180040ef0 12    NSObject c     retainWeakReference
0x180040ef8 13    NSObject c     allowsWeakReference
0x180040f00 14    NSObject c     _isDeallocating
0x180040f08 15    NSObject c     _tryRetain
0x180040f10 16    NSObject c     retain
0x180040f14 17    NSObject c     new
0x180040f64 18    NSObject c     debugDescription
0x180040f70 19    NSObject c     description
0x180040f78 20    NSObject c     forwardingTargetForSelector:
0x180040f80 21    NSObject c     forwardInvocation:
0x180040fd4 22    NSObject c     methodSignatureForSelector:
0x180040fec 23    NSObject c     instanceMethodSignatureForSelector:
0x180041004 24    NSObject c     performSelector:withObject:withObject:
0x18004106c 25    NSObject c     performSelector:withObject:
0x1800410cc 26    NSObject c     performSelector:
0x18004111c 27    NSObject c     doesNotRecognizeSelector:
0x180041160 28    NSObject c     resolveInstanceMethod:
0x180041168 29    NSObject c     resolveClassMethod:
0x180041170 30    NSObject c     methodForSelector:
0x1800411ac 31    NSObject c     instanceMethodForSelector:
0x1800411e8 32    NSObject c     isProxy
0x1800411f0 33    NSObject c     isFault
0x1800411f8 34    NSObject c     isEqual:
0x180041204 35    NSObject c     hash
0x180041208 36    NSObject c     conformsToProtocol:
0x180041284 37    NSObject c     respondsToSelector:
0x180041294 38    NSObject c     instancesRespondToSelector:
0x1800412a4 39    NSObject c     isAncestorOfObject:
0x180041320 40    NSObject c     isSubclassOfClass:
0x180041370 41    NSObject c     isKindOfClass:
0x1800413c4 42    NSObject c     isMemberOfClass:
0x1800413d8 43    NSObject c     superclass
0x180041410 44    NSObject c     class
0x180041414 45    NSObject c     self
0x180041418 46    NSObject c     initialize
0x18004141c 47    NSObject       mutableCopy
0x18004142c 48    NSObject       copy
0x18004143c 49    NSObject       zone
0x180041440 50    NSObject       finalize
0x180041444 51    NSObject       dealloc
0x18004144c 52    NSObject       init
0x180041450 53    NSObject       retainCount
0x1800415d4 54    NSObject       autorelease
0x180041adc 55    NSObject       release
0x180042250 56    NSObject       retainWeakReference
0x18004225c 57    NSObject       allowsWeakReference
0x180042280 58    NSObject       _isDeallocating
0x18004233c 59    NSObject       _tryRetain
0x180042658 60    NSObject       retain
0x180042664 61    NSObject       debugDescription
0x180042670 62    NSObject       description
0x180042678 63    NSObject       forwardingTargetForSelector:
0x180042680 64    NSObject       forwardInvocation:
0x1800426d4 65    NSObject       methodSignatureForSelector:
0x1800426ec 66    NSObject       performSelector:withObject:withObject:
0x180042754 67    NSObject       performSelector:withObject:
0x1800427b4 68    NSObject       performSelector:
0x180042804 69    NSObject       doesNotRecognizeSelector:
0x180042848 70    NSObject       methodForSelector:
0x180042884 71    NSObject       isProxy
0x18004288c 72    NSObject       isFault
0x180042894 73    NSObject       isEqual:
0x1800428a0 74    NSObject       hash
0x1800428a4 75    NSObject       conformsToProtocol:
0x180042928 76    NSObject       respondsToSelector:
0x180042974 77    NSObject       isKindOfClass:
0x1800429ec 78    NSObject       isMemberOfClass:
0x180042a20 79    NSObject       superclass
0x180042a74 80    NSObject       class
0x180042ac4 81    NSObject       self
--
0x182068000 0x0000000184078028   (....... @ section.lib_libhello_1.0.dylib.8.__DATA_CONST.__objc_classlist 6510051368 lib_libhello-1.0.dylib.18.__AUTH.__objc_data class Test R 0x184078000
EOF
RUN

NAME=dyldcache CVE-2022-1244
FILE=bins/dyldcache/CVE-2022-1244
CMDS=<<EOF
aaa
q
EOF
EXPECT=<<EOF
EOF
RUN

NAME=dyldcache 1042.1 header
FILE=bins/dyldcache/dyld_shared_cache_arm64-macOS-1042.1
CMDS=<<EOF
i
is
iS
iH~{}
oml
EOF
EXPECT=<<EOF
fd       3
file     bins/dyldcache/dyld_shared_cache_arm64-macOS-1042.1
size     0x20000
humansz  128K
mode     r-x
format   dyldcache
iorw     false
block    0x100
type     development
arch     arm
cpu      N/A
baddr    0x180000000
binsz    0x00020000
bintype  N/A
bits     64
retguard false
class    dyldcache
compiler N/A
dbg_file N/A
endian   LE
hdr.csum N/A
guid     c0a042e3c0db394caa455cd7e767643f
intrp    N/A
laddr    0x00000000
lang     c++
machine  arm
maxopsz  4
minopsz  4
os       macOS
cc       N/A
pcalign  4
rpath    N/A
subsys   xnu
stripped false
crypto   false
havecode true
va       true
sanitiz  false
static   true
linenum  false
lsyms    false
canary   false
PIE      false
RELROCS  false
NX       false
nth paddr      vaddr       bind   type size lib name                      
--------------------------------------------------------------------------
0   0x00007fb4 0x180007fb4 GLOBAL FUNC 0        _i_am_libSystem
0   0x0000bfb0 0x18000bfb0 GLOBAL FUNC 0        _say_hello
0   0x0000ff38 0x18000ff38 GLOBAL FUNC 0        dyld3::entryVectorForDyld
1   0x0000ff34 0x18000ff34 GLOBAL FUNC 0        _i_am_libdyld
0   0x00013fb4 0x180013fb4 GLOBAL FUNC 0        _i_am_libsystem_kernel
paddr      size vaddr       vsize align perm name                                                 type flags 
-------------------------------------------------------------------------------------------------------------
0x00007fb4 0x4  0x180007fb4 0x4   0x0   -r-x lib_libSystem.B.dylib.0.__TEXT.__text                     
0x00007fb8 0x48 0x180007fb8 0x48  0x0   -r-x lib_libSystem.B.dylib.1.__TEXT.__unwind_info              
0x0000bfb0 0x8  0x18000bfb0 0x8   0x0   -r-x lib_libhello.dylib.0.__TEXT.__text                        
0x0000bfb8 0x48 0x18000bfb8 0x48  0x0   -r-x lib_libhello.dylib.1.__TEXT.__unwind_info                 
0x0000ff34 0x4  0x18000ff34 0x4   0x0   -r-x system_libdyld.dylib.0.__TEXT.__text                      
0x0000ff38 0x80 0x18000ff38 0x80  0x0   -r-x system_libdyld.dylib.1.__TEXT.__const                     
0x0000ffb8 0x48 0x18000ffb8 0x48  0x0   -r-x system_libdyld.dylib.2.__TEXT.__unwind_info               
0x00013fb4 0x4  0x180013fb4 0x4   0x0   -r-x system_libsystem_kernel.dylib.0.__TEXT.__text             
0x00013fb8 0x48 0x180013fb8 0x48  0x0   -r-x system_libsystem_kernel.dylib.1.__TEXT.__unwind_info      
{
  "version": "1042.1",
  "header": {
    "magic": "dyld_v1   arm64",
    "mappingOffset": 512,
    "mappingCount": 2,
    "imagesOffset": 736,
    "imagesCount": 4,
    "dyldBaseAddress": 0,
    "codeSignatureOffset": 114688,
    "codeSignatureSize": 16384,
    "slideInfoOffset": 0,
    "slideInfoSize": 0,
    "localSymbolsOffset": 0,
    "localSymbolsSize": 0,
    "uuid": "c0a042e3c0db394caa455cd7e767643f",
    "cacheType": "development",
    "branchPoolsOffset": 0,
    "branchPoolsCount": 0,
    "dyldInCacheMH": 0,
    "dyldInCacheEntry": 0,
    "imagesTextOffset": 864,
    "imagesTextCount": 4,
    "patchInfoAddr": 6442532976,
    "patchInfoSize": 264,
    "otherImageGroupAddrUnused": 0,
    "otherImageGroupSizeUnused": 0,
    "progClosuresAddr": 0,
    "progClosuresSize": 0,
    "progClosuresTrieAddr": 0,
    "progClosuresTrieSize": 0,
    "platform": 1,
    "formatVersion": 0,
    "dylibsExpectedOnDisk": 0,
    "simulator": 0,
    "locallyBuiltCache": 1,
    "builtFromChainedFixups": 0,
    "padding": 0,
    "sharedRegionStart": 6442450944,
    "sharedRegionSize": 131072,
    "maxSlide": 2147401728,
    "dylibsImageArrayAddr": 0,
    "dylibsImageArraySize": 0,
    "dylibsTrieAddr": 6442532864,
    "dylibsTrieSize": 112,
    "otherImageArrayAddr": 0,
    "otherImageArraySize": 0,
    "otherTrieAddr": 0,
    "otherTrieSize": 0,
    "mappingWithSlideOffset": 624,
    "mappingWithSlideCount": 2,
    "dylibsPBLStateArrayAddrUnused": 0,
    "dylibsPBLSetAddr": 6442533240,
    "programsPBLSetPoolAddr": 6442534280,
    "programsPBLSetPoolSize": 16384,
    "programTrieAddr": 6442550664,
    "programTrieSize": 88,
    "osVersion": 851968,
    "altPlatform": 0,
    "altOsVersion": 0,
    "swiftOptsOffset": 0,
    "swiftOptsSize": 0,
    "subCacheArrayOffset": 992,
    "subCacheArrayCount": 0,
    "symbolFileUUID": "00000000000000000000000000000000",
    "rosettaReadOnlyAddr": 0,
    "rosettaReadOnlySize": 0,
    "rosettaReadWriteAddr": 0,
    "rosettaReadWriteSize": 0,
    "cacheSubType": 0,
    "objcOptsOffset": 0,
    "objcOptsSize": 0,
    "cacheAtlasOffset": 0,
    "cacheAtlasSize": 0,
    "dynamicDataOffset": 114688,
    "dynamicDataMaxSize": 16384
  },
  "images": [
    {
      "uuid": "e0a310e1c61e3b289c5df43f04e71a44",
      "address": 6442467328,
      "textSegmentSize": 16384,
      "path": "/usr/lib/libSystem.B.dylib",
      "name": "libSystem.B.dylib"
    },
    {
      "uuid": "f2c8e54bd02937e69928edd8b4bbec63",
      "address": 6442483712,
      "textSegmentSize": 16384,
      "path": "/usr/lib/libhello.dylib",
      "name": "libhello.dylib"
    },
    {
      "uuid": "439351ae77ca308ebf1da32729a79709",
      "address": 6442500096,
      "textSegmentSize": 16384,
      "path": "/usr/lib/system/libdyld.dylib",
      "name": "libdyld.dylib"
    },
    {
      "uuid": "4ce071b5dd373397aca699d517bdb6e7",
      "address": 6442516480,
      "textSegmentSize": 16384,
      "path": "/usr/lib/system/libsystem_kernel.dylib",
      "name": "libsystem_kernel.dylib"
    }
  ]
}
 1 fd: 3 +0x00000000 0x180000000 - 0x180013fff r-x fmap.cache_map.0
 2 fd: 3 +0x00014000 0x180014000 - 0x18001bfff r-- fmap.cache_map.1
EOF
RUN
