diff --git a/ObjC.mm b/ObjC.mm index 9669b4d..e7c90a9 100644 --- a/ObjC.mm +++ b/ObjC.mm @@ -3290,6 +3290,20 @@ -(void)parseObjC2Class64Pointers:(Pointer64Vector const *)classes caption:caption location:location class:class64_t]; + // access metaclass information via the isa pointer + uint64_t isaPointer = class64_t->isa; + MVNode * isaNode = nil; + if (isaPointer && (isaNode = [self sectionNodeContainsRVA:isaPointer])) + { + uint64_t isaLocation = [self RVAToFileOffset:isaPointer]; + NSString * isaCaption = [self findSymbolAtRVA:isaPointer]; + MATCH_STRUCT(isaClass64_t,isaLocation) + [self createObjC2Class64Node:isaNode + caption:isaCaption + location:isaLocation + class:(struct class64_t const *)isaClass64_t]; + } + } }