小技巧之-Zombie Enable(僵尸断点)
使用方法:点击工程图标(左上角那个)
首先点击Edit Scheme
然后在 Diagnostics -> Objective-C 勾选 Enable Zombie Objects 。
大家在写程序时可能会直接报出一些错误,像是数组越界或是对象为空什么的,但是碰到这些情况后就会发现代码直接就跳到了主函数(main.m)对查找问题所在极为不利。在查到了一些资料后,针对着使用异常断点和僵尸对象的特点及其展现问题的标志,做一些个人见解。
1. 使用exception breakpoint的作用:
如果不添加异常断点,运行程序出现异常时就会跳转到main函数,如果添加了异常断点后就会在抛出异常的那行停下。
原因描述:
代码有问题导致异常时,异常断点会停止程序的运行,一般没有设置异常断点,应用程序崩溃时,可能只会显示造成崩溃的那条异常,即便去查看日志也看不出什么问题所在,设置异常断点后,调试器会在异常抛出的瞬间停止程序的运行,并将程序定位到出现异常的那行代码上。
2. 使用 enable Zombie(只能用在模拟器上)
使用情况:
在我们运行一个项目时,经常会有crash现象,这是让大家相当烦闷的事情,一般的造成原因我们根据日志就可以看到,但有的野指针crash是不会显示的,这时我们就需要用到僵尸对象了,在editschem中设置enable Zombie Objects为enable状态。这样执行程序如果发生crash就会在日志中打印崩溃的原因。
解析:
一般出现僵尸对象是因为我们使用了一个已经被release掉的对象。一般当我们release内存中的一个对象时,该对象将被销毁。但是,当Zombies开启时,只是将其标志为release状态,但并没有销毁,这时如果我们再度访问这个对象,Xcode可以告诉我们正在访问的对象是一个不应该存在的对象。因为xcode知道这个对象是什么,所以知道在哪里,及这样的访问是什么时候发生的。
小技巧之-Zombie Enable(僵尸断点)相关推荐
- idea shell 中的函数 跳转_6 个珍藏已久 IDEA 小技巧,这一波全部分享给你!
每周趣图 产品经理设计体验/用户实际体验 本周就不写技术分析文章了,分享几个珍藏已久的 IDEA 的「骚技巧」,助你快速完成代码. 还等什么?赶紧上车吧...... 前进/后退 我们使用浏览器的过程, ...
- 调试笔记--keil 断点调试小技巧
调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...
- IntelliJ IDEA快捷键与使用小技巧
IntelliJ Idea 常用快捷键列表 修改方法如下: 点击 文件菜单(File) –> 点击 设置(Settings- Ctrl+Alt+S), –> 打开设置对话框. 在左侧的导航 ...
- EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT,subcode=0xdefe);Zombie,僵尸错误
经常出先类似错误"EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT,subcode=0xdefe)",非常苦恼,今天总结一下这种错误的解决方法: 1. ...
- Linux实用操作:小技巧(快捷键)、软件安装、systemctl、软连接、日期时区、IP地址、主机名、网络传输、端口、进程管理、主机状态、环境变量、上传、下载、压缩和解压
版本说明 当前版本号[20230415]. 版本 修改说明 20230415 初版 本课程的笔记已经更新完毕,各位可以通过点击黑马程序员2023年新版Linux零基础快速入门到精通>学习笔记总目 ...
- eplan文本怎么换行_EPLAN几个使用的小技巧,非常有用
Eplan P8 的一些小技巧 1. 页名后缀由字母变数字 ? 选项 - 设置 - 项目 - 管理 - 页 - 页名 - 子页标识 2. 修改自动连接电缆颜色 ? 选项 - 层管理 - 符号图形 3. ...
- rust熔炉怎么带走_Rust游戏中12个实用小技巧,包含无伤下坠、直梯爬楼
Rust是一款第一人称生存网络游戏,有点像野外求生,但这款游戏内容则更加丰富.刺激.血腥. 在这款游戏中玩家的第一任务就是活下来,而想要活下来你将要接受饥饿.干渴.寒冷等.游戏中玩家需要建造自己的庇护 ...
- 提高PHP运行速度的小技巧
使用PHP的最大1个优势就是速度快.一般情况下,PHP总是具有足够的速度支持Web内容动态生成,许多时候甚至无法找出比它更快的方法.然而,当面对庞大的访问量.高负荷的应用.有限的带宽,以及其他各种带来 ...
- Pycharm那些隐藏的实用小技巧,太强了
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接: blog.csdn.net/zhiguigu/article/details/119 ...
最新文章
- 解决pytorch-gpu 安装失败方案
- 《PHP对象、模式与实践》之高级特性
- 板邓:php获取数组元素个数
- oracle张大鹏,Oracle数据库性能优化
- iOS:项目中用到的Cookie
- u盘插在linux电脑上没有反应,U盘插在自己电脑上没有反应,别人电脑有反应的解决方法...
- 【渝粤题库】国家开放大学2021春3897商务英语1题目
- 大学计算机课感悟100字,停课不停学的心得100字 停课不停学的感想
- OK6410开发板学习之外部中断(按键点亮led和蜂鸣器)
- java基础第五篇封装与面向对象
- centos7下安装libiconv失败
- Winform界面中实现菜单列表的动态个性化配置管理
- 点击右键头换到下一张图片html,简单的实现点击箭头图片切换的js代码
- 程序人生:hello程序的P2P
- ubuntu18 百度云盘
- 模拟高校的三个老师同时分发80份学习笔记
- Android 5.0、6.0、7.0、8.0主要新特性
- Cannot determine the organization name for this ‘dev.azure.com‘ remote url 解决方法
- (附源码)计算机毕业设计SSM中小学家校通系统
- PB通过Http协议上传、下载文件