IOS调试—断点调试以及动态输出

在开发App的过程中。须要重复的改动和优化我们的代码,特别是当程序出现bug,须要高速的找出错误的原因,进行改动,以保证程序的正确运行。

  断点调试,是最经常使用最简单的一种调试方式,能够一步步跟踪程序运行的流程,得到变量的值,高速的找到错误的原因。

1、断点的基本操作

  断点的操作很easy,以下通过几张图来介绍一下怎样加入、删除、编辑以及使用断点。

2、全局断点

  设置全局断点(异常断点)。当遇到错误,Debug程序会自己主动定位到栈底信息,即跳到出错代码所在行。

3、条件断点

  设置条件断点。当满足条件的时候,才触发断点,适合用于循环结构中,能够准确的定位到某次循环。

4、符号断点

  符号断点能够中断指定函数的调用。也能够定位到出现异常的代码处。并打印异常信息。

5、NSLog输出

  在调试的过程中。常常通过NSLog在控制台输出须要的信息。

NSLog输出比較消耗系统资源。输出的数据也可能会暴露出App里的保密信息,所在在公布正式版本号之前必须把全部的NSLog输出都屏蔽掉。

  NSLog除了输出基本信息,对于结构体也能够一次性输出。

6、动态输出

  在程序的调试过程中。除了通过断点调试在Xcode下方查看变量的值,也能够通过NSLog在控制台输出想要的信息。使用NSLog输出须要在执行前就把想要输出的信息写好,假设有改变,须要又一次编译执行。效率很低。

  以下介绍一种很easy有用的方式。在程序执行的过程中,通过在控制台输入对应的指令,能够高速的打印输出须要的信息,很的方便。

  动态输出的指令有两个,p和po,与NSLog使用方法类似。p用于打印输出普通信息。po用于打印输出对象信息。

使用动态指令须要与断点配合使用。这样就行动态的打印输出程序运行到某个断点时的信息。

时间: 2024-10-14 10:13:56

IOS调试—断点调试以及动态输出的相关文章

iOS开发断点调试高级技巧

关于LLDB调试,很多iOS开发者可能就是停留在会下简单的断点,使用最多命令也就是po.无可厚非,这些简单的调试对于简单的问题来说应该是游刃有余.但是如果稍微复杂一些的问题,比如我之前遇到过友盟SDK里面的一个问题.我很想往里面下一个断点,可是对于.a的静态库来说,这根本不可能,最终还是我们组大牛使用命令的方式下了断点解决了这个问题.感觉这些知识很有必要,我于是把LLDB的基本调试命令都学习了一下,并在此与大家分享. 虽然博客很长,不过耐心看完,然后动手实践,一定会有很大帮助. breakpoi

android studio学习----调试---断点调试

Android Studio调试其实也非常方便,一般问题直接通过AS的DDMS的Logcat就可以搞定.AS支持类似Eclipse的DDMS的所有功能.这里要说的是疑难问题的调试方式,即断点调试. 首先先编译好要调试的程序. 如上图2所示在行号处点击设置断点.然后如1所示点击开启调试会话. 如上图所示,IDE下方出现Debug视图,1指向的是现在调试程序停留的代码行,2区域是程序的方法调用栈区.在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早.由此顺序想必有些And

ABAP断点调试

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4293693.html 调试键 F8:跳过后面所有断点,程序执行完 外部.会话.调试断点 调试断点-debug时打的断点,程序远程完后就会消失 会话断点-程序运行前通过会话断点按钮打的断点,在同一登录会话不同窗口都有效,用户注销后消失 外部断

ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的

解决办法:把1删掉 2选择debug模式 ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的,布布扣,bubuko.com

转:iOS LLDB调试器和断点调试

本文转自:http://www.cnblogs.com/wfwenchao/p/3991060.html?utm_source=tuicool&utm_medium=referral 技巧一:运行时修改变量的值 你以前怎么验证是不是某个变量的值导致整段程序不能正常工作?修改代码中的变量的值,然后cmd+r重新启动app?现在你不需要这么做了,只需要设置一个断点,当程序在这进入调试模式后,使用expr命令即可在运行时修改变量的值. 假如有一个loginWithUsername:方法,需要两个参数:

iOS LLDB调试器和断点调试

技巧一:运行时修改变量的值 你以前怎么验证是不是某个变量的值导致整段程序不能正常工作?修改代码中的变量的值,然后cmd+r重新启动app?现在你不需要这么做了,只需要设置一个断点,当程序在这进入调试模式后,使用expr命令即可在运行时修改变量的值. 假如有一个loginWithUsername:方法,需要两个参数:username,password. 首先设置好断点,如下图所示: 运行app,进入断点模式后,在(lldb)后输入 ? 1 2 expr username = @"username&

iOS中debug调试输出日志

在.pch中写: #ifdef DEBUG  // 调试阶段 #define CXSLog(...) NSLog(__VA_ARGS__) #else // 发布阶段 #define CXSLog (...) #endif iOS中debug调试输出日志,布布扣,bubuko.com

iOS开发中调试的总结

本博客转自:http://www.jianshu.com/p/9c4c92a38468 [1.普通断点] 断点(Breakpoint)绝对是调试程序的第一大选择,也是掌握的基础技能.顾名思义,当程序运行到断点处时会暂停运行.比如断点打在11行,那么程序就会停在11行(注意:程序只运行到了前10行,第11行其实还没有被执行!!!).只要在代码行旁边点击,就能添加一个断点,再次点击,就能让断点不可用(disable了,仍然存在,只是不起作用了).在某一行创建断点的快捷键是:command+\ 并能在

断点调试利器

编码不能没调试,调试不能没断点(Break Point).XCode的断点功能也是越来越强大. 基本断点 如下图,这种是最常用的断点,也是最容易设置.左键点击一下就可以设置. 编辑断点 断点是可以编辑的. 断点有下面几个属性可以设置: Condition Ignore Action Options Condition 这里可以输入条件表达式,满足条件的时候断点就会生效.例如上面输入a == 50.这个是非常有用的设置,特别在循环体内调试的时候,用着真的是爽. Ingore 在这里可以设置忽略断点