Skip to content

Instantly share code, notes, and snippets.

@Shilo
Created October 29, 2013 06:47
Show Gist options
  • Save Shilo/7210063 to your computer and use it in GitHub Desktop.
Save Shilo/7210063 to your computer and use it in GitHub Desktop.
Objective-C snippet for retrieving the call stack information. Useful for finding private classes/methods.
NSString *sourceString = [[NSThread callStackSymbols] objectAtIndex:1];
// Example: 1 UIKit 0x00540c89 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
NSCharacterSet *separatorSet = [NSCharacterSet characterSetWithCharactersInString:@" -[]+?.,"];
NSMutableArray *array = [NSMutableArray arrayWithArray:[sourceString componentsSeparatedByCharactersInSet:separatorSet]];
[array removeObject:@""];
NSLog(@"Stack = %@", [array objectAtIndex:0]);
NSLog(@"Framework = %@", [array objectAtIndex:1]);
NSLog(@"Memory address = %@", [array objectAtIndex:2]);
NSLog(@"Class caller = %@", [array objectAtIndex:3]);
NSLog(@"Function caller = %@", [array objectAtIndex:4]);
NSLog(@"Line caller = %@", [array objectAtIndex:5]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment