Egy folyamatban lévő munkához volt szükségem egy friss AppKit.framework class-dumpra, de a program elszállt.
Hibajelenség:
class-dumpot frameworkon futtatva a következő exceptiont adja:
2012-09-28 20:41:02.484 class-dump[21769:707] *** Terminating app due to uncaught exception 'NSRangeException', reason: 'Trying to read past end in -[CDDataCursor readLittleInt32]' *** First throw call stack: ( 0 CoreFoundation 0x00007fff8f52bf56 __exceptionPreprocess + 198 1 libobjc.A.dylib 0x00007fff8614ad5e objc_exception_throw + 43 2 CoreFoundation 0x00007fff8f52bd8a +[NSException raise:format:arguments:] + 106 3 CoreFoundation 0x00007fff8f52bd14 +[NSException raise:format:] + 116 4 class-dump 0x000000010000ed41 class-dump + 60737 5 class-dump 0x000000010001a3d2 class-dump + 107474 6 class-dump 0x0000000100009399 class-dump + 37785 7 class-dump 0x000000010001a8dd class-dump + 108765 8 class-dump 0x0000000100001fa8 class-dump + 8104 9 class-dump 0x000000010000d217 class-dump + 53783 10 class-dump 0x0000000100001464 class-dump + 5220 )
Hiba oka: olyan frameworkon próbálod futtatni ami SDK és az XCode szállítja. Ezek MH_DYLIB_STUB típusúak és nem tartalmaznak futásidejű információt.
Hiba megoldása: /System alatt található framework-ön futtassad. pl:
class-dump /System/Library/Frameworks/AppKit.framework/AppKit
Megj.: Mindez persze nem vonatkozik az iOS SDK-ra.