ObjectiveC中打印Call Stack的若干方法
来源:互联网 发布:eclipse maven mac 编辑:程序博客网 时间:2024/05/16 00:53
动因
虽然lldb已经内置命令可以打印当前Call stack,但还是会遇到需要通过代码获取调用栈信息的时候。
使用NSThread
NSLog(@"%@", [NSThread callStackSymbols]);
通过backtrace_symbols_fd
#import <execinfo.h>#import <unistd.h>void PrintCallStack() { void *stackAdresses[32]; int stackSize = backtrace(stackAdresses, 32); backtrace_symbols_fd(stackAdresses, stackSize, STDOUT_FILENO);}
通过NSException
@catch (NSException *exception){ NSLog(@"%@", [exception callStackSymbols]);}当然也可以在UncaughtExceptionHandler中拿到NSExceptionNSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);void uncaughtExceptionHandler(NSException *exception){ NSLog(@"reason:%@ exception nanme:%@",[exception reason], [exception name]); NSLog(@"call stack:%@",[exception callStackSymbols]);}
要注意的是,如果IDE中已经添加过All exceptions Breakpoint, 那么 UncaughtExceptionHandler不再生效
通过ExceptionHandling
由于不支持iOS 不细说了
具体参考Apple developer 文档
0 0
- ObjectiveC中打印Call Stack的若干方法
- linux 打印call stack 方法
- JNI中如何打印Call Stack
- JNI中如何打印Call Stack
- ObjectiveC 中同步调用WebService的方法
- [iOS]Xcode4/iOS5调试UncaughtException崩溃First throw call stack不打印方法名的解决方案
- [iOS]Xcode4/iOS5调试UncaughtException崩溃First throw call stack不打印方法名的解决方案
- Xcode4/iOS5调试UncaughtException崩溃First throw call stack不打印方法名的解决方案
- [iOS]Xcode4/iOS5调试UncaughtException崩溃First throw call stack不打印方法名的解决方案
- 获取call stack的几种方法
- Xcode debug时如何查看崩溃堆栈:First throw call stack不打印方法名
- ObjectiveC中setter getter 方法初体验
- iOS中线程Call Stack的捕获和解析
- ios反射调用类的方法(objectiveC)
- ios反射调用类的方法(objectiveC)
- ios反射调用类的方法(objectiveC)
- ios反射调用类的方法(objectiveC)
- objectivec中nil和NULL的区别
- 用递归调用计算和编程计算f(x) 的一些问题处理
- HDU 4777 Rabbit Kingdom [离线+树状数组]
- cocos code ide--js 中获取cocostudio中按钮以及函数回调
- Centos7的相关问题
- smarty学习笔记(01)——小模板
- ObjectiveC中打印Call Stack的若干方法
- iOS开发-Block语法
- I have a Drea -by Martin Luther King
- hdu5540 Secrete Master Plan(The 2015 China Collegiate Programming Contest )
- c语言 内存初探
- iOS开发-内存管理
- 【惊爆】马哥linux2016最新全套课程(内部泄密版)
- 小马哥---高仿小米4 主板型号H71T 刷机拆机主板图与开机识别图 v009标贴 15年版本
- c语言 结构体