xcode如何查看callstack

xcode中查看方法调用的callstack有三种办法,推荐第2种,下面第四种是对异常的trace,需要时也可以用。

1,alloutput输出窗口输入lldb命令:

bt

据说gdb也是bt命令,bt通用啊,哈哈

2,

 NSLog(@"%@",[NSThread callStackSymbols]);


3,加入

#import <execinfo.h>

void PrintBacktrace ( void )

{

  void *callstack[128];

  int frameCount = backtrace(callstack, 128);

  char **frameStrings = backtrace_symbols(callstack, frameCount);

  

  if ( frameStrings != NULL ) {

    // Start with frame 1 because frame 0 is PrintBacktrace()

    for ( int i = 1; i < frameCount; i++ ) {

      printf("%s\n", frameStrings[i]);

    }

    free(frameStrings);

  }

}


4,如果是为了跟踪抛异常时候的callstack,可以把main函数改成下面这样子

#import <UIKit/UIKit.h> 
int main(int argc, char *argv[]) 
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    int retVal; 
    @try 
    { 
        retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
    }
    @catch (NSException *exception) { 
         NSLog(@"Gosh!!! %@", [exception callStackSymbols]); @throw; 
     } 
     @finally 
     { 
          [pool release]; 
     } 
    return retVal; 
}

转载于:https://my.oschina.net/openlab/blog/161284

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值