查看调用堆栈中的objc调用

时间:2011-04-26 10:13:02

标签: objective-c

我正在调试Objective-C应用程序,并希望在ObjC库中看到方法调用(出于教育目的!)。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:4)

// print a stacktrace
NSLog(@"%@", [NSThread callStackSymbols]); // requires iOS 4

// print stacktrace using C functions
#import <execinfo.h>
#import <unistd.h>
void PrintStackTrace() {
  void *stackAdresses[32];
  int stackSize = backtrace(stackAdresses, 32);
  backtrace_symbols_fd(stackAdresses, stackSize, STDOUT_FILENO);
}

或在XCode中设置断点以暂停执行,然后在控制台中键入GDB命令或只在调试导航器选项卡中查看堆栈。