EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)处理
来源:互联网 发布:数据安全保密管理制度 编辑:程序博客网 时间:2024/06/01 10:40
EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0) 这种崩溃有时无任何征兆,我们可以打开Product->Scheme->Edit Scheme 按照如下图操作:
run->Diagnostics->Enable Zombie Objects 勾选上
即为: 僵尸模式
重新定位问题,观察控制台是否有提示输出
如果没有继续以下操作(用模拟器调试):
1.还是Edit Scheme,切换到Tab Aguments 配置环境变量MallocStackLoggingNoCompact,NSZombieEnabled,MallocStackLogging
重新定位问题,错位信息里会有一个内存地址,例如:message sent to deallocated instance 0x6497860, 在终端里输入malloc_history 40888 0x6497860 |grep 0x6497860 会出现以下提示
ALLOC 0xfcdff50-0xfce00b7 [size=360]: thread_3bf2a28 |start | main | UIApplicationMain | GSEventRun
| GSEventRunModal | CFRunLoopRunInMode | CFRunLoopRunSpecific | __CFRunLoopRun | __CFRunLoopDoObservers
| __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ | _afterCACommitHandler | _applyBlockToCFArrayCopiedToStack
| ___afterCACommitHandler_block_invoke | __38-[UITableView touchesEnded:withEvent:]_block_invoke |
-[UITableView _userSelectRowAtPendingSelectionIndexPath:] | -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] | -[MessageListViewController tableView:didSelectRowAtIndexPath:] | _objc_rootAlloc | class_createInstance | calloc | malloc_zone_calloc
-[MessageListViewController tableView:didSelectRowAtIndexPath:] 这个就是错误的位置
上面是在网上找到的解决方法比较通用
第二。
还有就是 你看一下 是否用0做了除数。
或者是否用0做了被除数。然后用后续得到的数继续运算。
如果继续 就会导致崩溃。 打印一下 会得到NaN.
普及一下NaN
NaN,是Not a Number的缩写。
NaN 用于处理计算中出现的错误情况,
比如 0.0 除以 0.0 或者求负数的平方根。由上面的表中可以看出,对于单精度浮点数,NaN 表示为指数为 emax + 1 = 128(指数域全为 1),且尾数域不等于零的浮点数。IEEE 标准没有要求具体的尾数域,所以 NaN 实际上不是一个,而是一族。不同的实现可以自由选择尾数域的值来表达 NaN,比如 Java 中的常量 Float.NaN 的浮点数可能表达为 01111111110000000000000000000000,其中尾数域的第一位为 1,其余均为 0(不计隐藏的一位),但这取决系统的硬件架构。Java 中甚至允许程序员自己构造具有特定位模式的 NaN 值(通过 Float.intBitsToFloat() 方法)。比如,程序员可以利用这种定制的 NaN 值中的特定位模式来表达某些诊断信息。
- //可以用下面方法
- isnan(x)
第三。
如果你用的是MRC内存管理模式。
可能是:
重复的release了某个对象,检查下代码,有没有重复release出现。
或者autorelease的对象比如[UIButton buttonWithType:UIButtonTypeCustom]之类的不需要release的被release过
- EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)处理
- 解决EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0) Xcode6
- EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT,subcode=0xdefe)
- EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT,subcode=0xdefe);Zombie,僵尸错误
- EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT,subcode=0xdefe);Zombie,僵尸错
- EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT,subcode=0xdefe);Zombie,僵尸错误
- Thread 1:EXC_ARITHMETIC(code=EXC_I386_DIV,subcode=0x0) 错误提示
- thread1:exc_breakpoint(code=报错
- EXC_BAD_ACCESS (code=2, address=0x0)
- Qt:Exception at 0xeefde9, code:0x0000005: read access violation at: 0x0, flags = 0x0(first chance)
- EXC_BAD_ACCESS (code=1, address=0x0) when stepping in debugger
- Exception at 0x7c98478e, code: 0xc0000135: DLL not found, flags=0x0.
- matlab中x0=[x0,x0] 矩阵扩展
- 如何解决 read access violation at 0x0, flags= 0x0错误
- read access violation at:0x0, flags=0x0(first chance)
- read access violation at 0x0, flags= 0x0错误 解决方案
- QT5.4 read access violation at: 0x0, flags=0x0 (first chance)
- VS2008 Native' has exited with code 0 (0x0).
- Win7 64位下PowerDesigner连接64位Oracle11g数据库
- php学习 SQL注入 2016.03.29回顾
- java初学者常见问题(2)
- Linux安装jdk_8
- Android签名机制之---签名过程详解
- EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)处理
- Oracle使用with as语句提示未明确定义列
- jquery-ui-datepicker组件done
- Spring AOP
- xcodebuild和xcrun自动化编译ipa包 笔记
- C# list.add() list.join()用法
- myeclipse导入工程没有错误之后,tomcat运行也没错误,但是浏览器访问该工程时报错。
- QSS 的选择器
- Selenium 调用IEDriverServer打开IE浏览器