程序调试
调用堆栈(call stack)
含义:
假设在我们程序运行的过程中,有3个函数,func1,func2,func3,且func1 调用 func2,func2调用fun3.所以在 func3 运行的过程中,可以从线程中了解到调用它的那几个函数。从先后顺序来说,func3,func2,func1 呈现出“堆栈”的特征,最后被调用的函数排在最上方。
作用:
1)“调用堆栈”窗口可以查看当前堆栈上的函数或过程调用。
2)“调用堆栈”窗口显示每个函数的名称和编写它所用的编程语言。函数或过程名可能伴随有可选信息,如模块名、行号、字节偏移量以及参数的名称、类型和值。 可以打开或关闭这些可选信息的显示。
--
实战演练
.m文件中:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[self demo];
}
- (void)demo {
NSString *str = nil;
NSArray *array = @[@"123",str];
NSLog(@"%@",array);
}
@end
运行结果(Xcode模拟器)

在模拟器中,Xcode可以给出“调试堆栈”信息,那么对于真机,推荐使用“ 腾讯bugly”来获取信息。操作流程
效果图

网友评论