ios常见错误——thread 1 breakpoint 1.1

本文解释了遇到程序提示“thread1breakpoint1.1”的原因,并提供了简单的解决方法:找到带有浅蓝色箭头的行,通过右键选择删除断点即可使程序继续运行。
刚刚初学的时候,经常看到提示:thread 1 breakpoint 1.1,从而使程序运行不下去,但是程序也没有错误,然后去查了查。发现很容易简单解决
其实breakpoint不是你的程序出错,而是人为(估计是不小心点到的)的给某一行加上了breakpoint,也就是断点,导致程序运行到此处卡住了。
解决的方法:
找的提示breakpoint那一行,如果不知道就在代码的行开头找到浅蓝色的箭头,右键选择点击delete breakpoint 就all right了。
iOS系统中,EXC_BREAKPOINT是一种常见的崩溃类型。 EXC_BREAKPOINT崩溃通常伴随着特定的代码和子代码,例如“EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT, subcode=0xdefe)”,这种错误也被称为“僵尸”错误,意味着程序试图访问已经被释放的对象,从而导致崩溃 [^1]。还有如“EXC_BREAKPOINT (code=1, subcode=0x1c5691d2c)”这样的崩溃情况,在iOS 13.3.1系统的iPhone 7机型上,相关代码 `dispatch_async(_jsContextQueue, ^{ JSContext *jscontent = [[JSContext alloc] init]; [UIWebView class]; });` 可能会触发此类崩溃 [^2]。 当遇到EXC_BREAKPOINT崩溃时,可以通过一些调试方法来定位问题。比如点击“product”->"scheme"->"edit Scheme"->"Diagnostics",勾选“Enable Zombie Objects”;点击Xcode左上角Scheme图标的倒数第二个断点标志,点击左下角“加号”,添加“Add Exception breakpoint...”和“Add Symbolic breakpoint...”这两种断点,然后运行程序进行测试,查看output信息,有可能发现“僵尸”出现的位置 [^1]。另外,还可以在每个object的.m或者.mm文件中加入如下代码: ```objc #ifdef _FOR_DEBUG_ -(BOOL)respondsToSelector:(SEL)aSelector{ printf("SELECTOR:%s\n",[NSStringFromSelector(aSelector) UTF8String]); return [super respondsToSelector:aSelector]; } #endif ``` 并且在other cflags中加入 `-D_FOR_DEBUG_`(只在Debug Configuration下加入此标记),这样当程序崩溃时,Xcode的console上会准确记录最后运行的object的方法 [^4]。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值