使用方法:点击工程图标(左上角那个)

首先点击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(僵尸断点)相关推荐

  1. idea shell 中的函数 跳转_6 个珍藏已久 IDEA 小技巧,这一波全部分享给你!

    每周趣图 产品经理设计体验/用户实际体验 本周就不写技术分析文章了,分享几个珍藏已久的 IDEA 的「骚技巧」,助你快速完成代码. 还等什么?赶紧上车吧...... 前进/后退 我们使用浏览器的过程, ...

  2. 调试笔记--keil 断点调试小技巧

    调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...

  3. IntelliJ IDEA快捷键与使用小技巧

    IntelliJ Idea 常用快捷键列表 修改方法如下: 点击 文件菜单(File) –> 点击 设置(Settings- Ctrl+Alt+S), –> 打开设置对话框. 在左侧的导航 ...

  4. EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT,subcode=0xdefe);Zombie,僵尸错误

    经常出先类似错误"EXC_BREAKPOINT(code=EXC_ARM_BREAKPOINT,subcode=0xdefe)",非常苦恼,今天总结一下这种错误的解决方法: 1. ...

  5. Linux实用操作:小技巧(快捷键)、软件安装、systemctl、软连接、日期时区、IP地址、主机名、网络传输、端口、进程管理、主机状态、环境变量、上传、下载、压缩和解压

    版本说明 当前版本号[20230415]. 版本 修改说明 20230415 初版 本课程的笔记已经更新完毕,各位可以通过点击黑马程序员2023年新版Linux零基础快速入门到精通>学习笔记总目 ...

  6. eplan文本怎么换行_EPLAN几个使用的小技巧,非常有用

    Eplan P8 的一些小技巧 1. 页名后缀由字母变数字 ? 选项 - 设置 - 项目 - 管理 - 页 - 页名 - 子页标识 2. 修改自动连接电缆颜色 ? 选项 - 层管理 - 符号图形 3. ...

  7. rust熔炉怎么带走_Rust游戏中12个实用小技巧,包含无伤下坠、直梯爬楼

    Rust是一款第一人称生存网络游戏,有点像野外求生,但这款游戏内容则更加丰富.刺激.血腥. 在这款游戏中玩家的第一任务就是活下来,而想要活下来你将要接受饥饿.干渴.寒冷等.游戏中玩家需要建造自己的庇护 ...

  8. 提高PHP运行速度的小技巧

    使用PHP的最大1个优势就是速度快.一般情况下,PHP总是具有足够的速度支持Web内容动态生成,许多时候甚至无法找出比它更快的方法.然而,当面对庞大的访问量.高负荷的应用.有限的带宽,以及其他各种带来 ...

  9. Pycharm那些隐藏的实用小技巧,太强了

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接: blog.csdn.net/zhiguigu/article/details/119 ...

最新文章

  1. 解决pytorch-gpu 安装失败方案
  2. 《PHP对象、模式与实践》之高级特性
  3. 板邓:php获取数组元素个数
  4. oracle张大鹏,Oracle数据库性能优化
  5. iOS:项目中用到的Cookie
  6. u盘插在linux电脑上没有反应,U盘插在自己电脑上没有反应,别人电脑有反应的解决方法...
  7. 【渝粤题库】国家开放大学2021春3897商务英语1题目
  8. 大学计算机课感悟100字,停课不停学的心得100字 停课不停学的感想
  9. OK6410开发板学习之外部中断(按键点亮led和蜂鸣器)
  10. java基础第五篇封装与面向对象
  11. centos7下安装libiconv失败
  12. Winform界面中实现菜单列表的动态个性化配置管理
  13. 点击右键头换到下一张图片html,简单的实现点击箭头图片切换的js代码
  14. 程序人生:hello程序的P2P
  15. ubuntu18 百度云盘
  16. 模拟高校的三个老师同时分发80份学习笔记
  17. Android 5.0、6.0、7.0、8.0主要新特性
  18. Cannot determine the organization name for this ‘dev.azure.com‘ remote url 解决方法
  19. (附源码)计算机毕业设计SSM中小学家校通系统
  20. PB通过Http协议上传、下载文件

热门文章

  1. NOIP2016 秀逗记口胡题解
  2. (SWAT-5)气象数据的准备(中国区域高精度同化气象站CMADS)
  3. Css弦乐弱音器奏键位,小提琴弱音器的种类及使用方法
  4. mysql常见日志general_mysql中general_log日志知识点介绍
  5. 菜鸟讲堂之 OCX控件注册
  6. 【ccf】20220302出行计划
  7. SpringBoot 整合Neo4j
  8. HTML(超详细)(图+文)
  9. AWS EC2上传文件到S3(python boto)
  10. 吴基传:不要把云计算和大数据等同