static id embeddedObjcInstance()

in Chisel/Chisel/CHLObjcInstances.mm [34:48]


static id embeddedObjcInstance(vm_range_t range) {
  Dl_info info;
  bool aligned = range.address % alignof(void *) == 0;
  uint8_t *pointer = (uint8_t *)range.address;
  if (aligned && dladdr(pointer, &info)) {
    unsigned long size = 0;
    uint8_t *start = getsectiondata((mach_header_t *)info.dli_fbase, SEG_DATA, "__cfstring", &size);
    uint8_t *end = start + size;
    if (start <= pointer || pointer < end) {
      // Found NSString/CFString constant.
      return reinterpret_cast<id>(range.address);
    }
  }
  return nil;
}