IOS関数呼び出しスタック情報の取得


ヘッダファイルのインポート

#include <libkern/OSAtomic.h>
#include <execinfo.h>

メソッド呼び出しのスタック情報は、次のコードをメソッドに入れるとわかります.

    void* callstack[128];
    int frames = backtrace(callstack, 128);
    char **strs = backtrace_symbols(callstack, frames);
    int i;
    NSMutableArray *backtrace = [NSMutableArray arrayWithCapacity:frames];
    for (i = 0;i < 4;i++){
	 	[backtrace addObject:[NSString stringWithUTF8String:strs[i]]];
    }
    free(strs);
    NSLog(@"====================  
%@
",backtrace);