
Debug
文章平均质量分 56
最有趣的是Debug,最抓狂的是Debug
这是最好的Debug,这是最坏的Debug
大熊猫侯佩
一枚贪吃路痴还未秃码农。优快云 博客专家,iOS 与 Swift 版块版主,热爱苹果开发。
人生看淡,不服就干!
展开
-
iOS中NSDecimalNumber类的一个BUG
我的编程环境是XCode 11.5。今天在测试秒表代码的时候偶然发现秒表计数会是负值,由此进行了下面的一番探索。为了精确,秒表走过的秒数用Decimal类型:@Published var elapsedSeconds_exactly: Decimal = 0.0在实际使用时需要将其转换为整数类型,由于Decimal没有直接的方法转换为整数,所以我用的是如下的迂回战术:NSDecimalNumber(decimal: elapsedSeconds_exactly).intValue前面提到秒表原创 2020-06-17 21:29:06 · 565 阅读 · 0 评论 -
Swift初学者容易掉入的两个比较隐蔽的陷阱
本篇本猫向大家演示了初学者用Swift语言编码时容易犯的2个错误,希望可以帮助到大家。原创 2019-06-01 10:05:44 · 838 阅读 · 0 评论 -
iOS间接循环引用造成内存泄漏一例
大家对iOS代码中的循环引用导致内存泄漏都很了解,本博试图进一步完善和补充这一主题,谈谈间接循环引用造成泄漏的问题。原创 2019-05-28 10:32:16 · 1081 阅读 · 0 评论 -
一招搞定Xcode错误日志显示use -v to see invocation的问题
本博向大家展示了当Xcode出错信息匮乏,完全不知所云时,如何找到真正的错误原因的方法。简单有效,你值得拥有。抽风的Xcode?极少数情况下,Xcode编译出错的信息完全让人摸不着头脑,比如下面一段:<unknown>:0: error: merge-module command failed with exit code 1 (use -v to see invocatio...原创 2018-12-20 21:11:13 · 12087 阅读 · 1 评论 -
Xcode真机运行App行为怪异且断点无法触发的解决
系统环境 MacOS 10.12.6 4GB MBA,编译环境 Xcode 9.2 Swift 4.1问题现象在模拟器上编译运行一切正常,但在真机上编译运行时发现某一个界面显示方法总是返回错误的内容。关键是在该方法上下断点竟然无法触发,是的,我100%肯定会调用该方法!!!重启真机,删除App重新安装无效!因为界面是显示数据库中对应的内容,索性重新从云中还原模拟器中备份的数据,可是在...原创 2018-12-12 21:53:09 · 1760 阅读 · 0 评论 -
Xcode模拟器中无法播放音频文件的原因分析
在本猫的Mac Mini上开发iOS app,发现当执行到播放音频的代码时,发生错误,log如下:2015-10-05 07:22:17.122 LearnSpriteBuilder[10321:559370] 07:22:17.122 ERROR: 98: Error '!obj' trying to fetch default input device's sample rate201原创 2015-10-05 07:51:43 · 4563 阅读 · 0 评论 -
移动设备上音频文件不能播放怎么办?
注意,不是所有的音频格式在移动设备上都支持.举个栗子,OGG和FLAC文件不能在iOS上播放,最好固定使用最常用的格式:音效为.caf和.wav,长音频为mp3或者为m4a.如果你有不同格式的音频文件,可以使用音频转换器,比如SoundConverter或者音频编辑器,比如Audacity去转换这些文件.如果你有一个正确格式的音频文件却不能播放,这可能是该文件被非标准的音频扩展程序创建或修改过,或者翻译 2015-10-04 19:52:47 · 1388 阅读 · 0 评论 -
断言(Assertion)需要注意的一个地方
因为断言只在debug构建中有效,所以它是中关重要的去避免运行任何代码或调用任何方法在断言条件中,而这些代码或方法会影响程序的状态.否则程序的行为将在debug和release构建中变得不一致,这显然不是我们希望看到的.翻译 2015-10-09 15:11:00 · 1221 阅读 · 0 评论 -
Xcode调试非异常导致崩溃的程序
如果App不是因为一个异常而崩溃,Xcode可能任然会指向main()函数为出错位置.在这种情况下,你可能遇上了更低级别的问题.也许是一个除以0错误或是缓冲溢出问题,或者你寻址一个已经被释放的对象.当(全局)异常断点打开,程序执行将在异常信息和调用栈被打印到控制台之前被挂起,你可以接下来选择继续(Continue program execution)按钮一次去查看异常信息和调用栈.翻译 2015-10-09 07:09:36 · 914 阅读 · 0 评论 -
Xcode中的全局异常断点
一旦异常断点被添加,你可以鼠标右键选择 Edit Breakpoint 打开弹出菜单.改变异常类型为Objective-C,这可以防止C++异常被捕获,你可能不想捕获这些.因为通常情况下你的App中没有C++代码,而在OpenAL框架库和其他第三方代码可能会引发C++异常,但你不必处理这些.翻译 2015-10-09 07:02:53 · 1165 阅读 · 0 评论 -
目前调试移动设备程序只能通过USB线缆
就像iOS,转移(到设备上)并调试App不可能通过WiFi或蓝牙连接.一个有线的USB线缆连接现今主要用来调试.确保你直接将Android设备插入Mac的USB接口,避免使用USB hubs和扩展线,它们可能会阻止设备被OS识别出来.它们也会降低传输速率或者使得传输不稳定.同样的原因对于第三方的线缆来说,最好使用设备原配的USB线缆.翻译 2015-10-08 10:42:42 · 779 阅读 · 0 评论 -
Xcode中的调试工具栏简介
如下图所示:从左至右,第一个按钮用来隐藏调试区域。第二个按钮向你展示断点是否被全局开启或禁用。如果它不是高亮蓝色,则没有断点会被触发。第三个按钮暂停或继续程序的执行,你一般点击它继续运行到程序的下一个断点(如果有的话)。第四个按钮(Step Over),第五个按钮(Step Into),以及第六个按钮(Step Out)翻译 2015-10-09 20:25:39 · 1170 阅读 · 0 评论 -
Xcode中lldb的REPL调试方法
Xcode中lldb调试器有一个repl语句,可以用来模拟swift解释器的REPL行为,即Read Eval Print Loop.在Xcode里随意打开程序,中断入调试器.在调试控制台中输入repl命令,然后我们输入一个函数:func num0(ary:[Int])->Int{ return ary.reduce(0){ if $1 == 0{ r原创 2016-08-30 10:00:49 · 887 阅读 · 0 评论 -
Xcode两种调试小技巧
1.”全局”断点 正常情况下如果代码有错误,会直接触发SIGXXXX信号,然后中断在main函数里. 但是我们还是不知道到底是什么引发了异常信号.我们可以在断点导航器中添加一个全局断点,一旦出现错误,会立即中断执行:2.启用未声明selector异常 如果我们在代码中引用了一个未声明的selector,编译不会有问题;但是运行时会直接崩溃.我们可以在项目中开启未声明selector异常,在编译原创 2015-09-03 12:22:39 · 844 阅读 · 0 评论 -
橡皮鸭程序调试法
原文:http://coolshell.cn/?p=1719 (酷壳) 下面,让我来为你介绍一个程序调试大法——“橡皮鸭程序调试法”,这个方法在调试界是很出众的,实施起来相当方便和简易,几乎可以随时随地地实验,几乎不需要借助任何的软件和硬件的支持,你甚至可以把你的程序打印出来,在纸面上进行调试。那么,为什么这个方法要叫做橡皮鸭呢?因为橡皮鸭子是西方人在泡澡时最喜欢玩的一个小转载 2014-06-24 07:40:22 · 1014 阅读 · 0 评论 -
wingdb开发过程中遇到一个比较“头疼”的bug
windows7,调试原创 2011-08-08 13:56:55 · 3180 阅读 · 3 评论 -
从ruby实现时间服务器ntp同步功能也谈“逆向工程”
本猫以前写asm和C的时候常常不忘“逆向”一把,后来写驱动的时候也用VM之类的搭建“双机”调试环境进行调试;也对于一些小的软件crack cd-key神马的不亦乐乎。自从使用鸟所谓的高级动态语言ruby之后,这种黑逆的心态貌似逐渐减弱了...不过逮到机会还是难免心痒痒啊。 ruby+linux的开源方式早已不要向bin码一样还要dis asm,不过有时候想要搞清楚一些功能还是要用点小技巧原创 2014-12-04 14:52:49 · 2531 阅读 · 0 评论 -
gdb中的define命令
可以使用define命令达到类似于display的效果:比如每ni后显示当前5条指令: define s5 ni x/5i $pc end甚至可以手动传入要显示指令的条数: define s ni x/arg0iarg0i pc end然后这样使用:s 5我们还可以再加点料,ni后自动显示某些reg的值: define s ni printf “r原创 2015-04-19 16:29:23 · 1803 阅读 · 0 评论 -
关于代码重构:是微修还是全部推倒重来
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)RPG游戏码代码到现在已经写了不少行代码了.最近在加入新功能的时候发现以前遗留的人物对话问题一直没有解决,游戏对话逻辑是RPG中重要的逻辑,而我的代码问题具体表现在:对话代码逻辑及其复杂.因为以前从来没有写过类似的代码,要想支持游戏剧情的复杂性,必须将对话原创 2016-01-17 15:22:08 · 2207 阅读 · 0 评论 -
Rails中使用ajax的两种方法及调试技巧
Rails这个超级强大的网站构建器为用户界面变更和交互提供了ajax操作的能力,据我所知在Rails中使用ajax有两种方法,下面为大家一一道来 ;)一.在$(document).ready中注册hook,伺机而动我们可以为html中某个元素注册回调钩子,比如在select中的选项发生改变的时候:<%= select_tag("department",options_from_collection_原创 2017-01-27 23:08:52 · 3158 阅读 · 0 评论 -
解决os x下gdb不能调试的问题
新的os x内核禁止未授权的程序随意控制,如何在不root的情况下使用gdb呢?原创 2014-06-04 10:32:49 · 3233 阅读 · 0 评论