Object-c中如何打印函数调用栈Object-c中如何打印函数调用栈

来源:互联网 发布:淘宝代购港版手机 编辑:程序博客网 时间:2024/05/21 21:54

打印当前的函数名可以使用__PRETTY_FUNCTION__宏,或者封装一下:

  1. #define NSSTRING_PRETTY_FUNCTION [NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSASCIIStringEncoding]

打印:

  1. NSLog("Function Name:%@",NSSTRING_PRETTY_FUNCTION);

打印调用堆栈可以借助于: callStackSymbols

  1. NSArray *syms = [NSThread  callStackSymbols];
  2. if ([syms count] > 1) {
  3.     NSLog(@"<%@ %p> %@ - caller: %@ ", [self class], self, NSStringFromSelector(_cmd),[syms objectAtIndex:1]);
  4. } else {
  5.      NSLog(@"<%@ %p> %@", [self class], self, NSStringFromSelector(_cmd));
  6. }
原创粉丝点击