![]() |
1
3
我的iPhone开发人员的生活很糟糕,直到我发现 NSZombieEnabled . 通过将此标志添加到可执行文件中,它将通过让您知道出错对象的名称来帮助您查看任何内存问题。 这项工作从未真正释放过一个对象,而是将它包装成一个“僵尸”,并在其中设置一个标志,表示它通常会被释放。这样,如果您再次尝试访问它,它仍然知道在您犯错误之前是什么,并且有了这一点信息,您通常可以回溯查看问题是什么。 它在后台线程中尤其有用,因为调试器有时会把有用的信息放在外。 需要注意的是 但是,您需要100%确保这只存在于调试代码中,而不存在于分发代码中。因为没有任何东西可以发布,你的应用程序会泄漏,泄漏和泄漏。为了提醒我执行此操作,我将此日志放在AppDelegate中:
|
![]() |
2
1
你要找的关键词是“象征性”。如果您有一个来自设备的崩溃日志,您必须对其进行太阳符号化,以便让堆栈跟踪给您提供行号。 帮助我运行命令的.profile中的函数是:
基本上,您将应用程序包、在构建时生成的dsym文件和崩溃日志放在同一目录中,然后运行“dysm[crash log file name]”,以便在堆栈跟踪中正确显示符号。 注意它 必须 是生成崩溃的同一个可执行文件和dysm文件!每次重新编译时,事物的位置都会发生变化。 |
![]() |
3
0
要做的事情: 1)在断点打开的情况下进行调试 2)添加全局断点:objc_exception_throw 然后在调试器窗口中查找 |
![]() |
George S. · 是否存在基于元组的控制流语句内部表示? 7 年前 |
![]() |
FlatAssembler · 在x86程序集中计算exp(x) 7 年前 |
![]() |
cib · 即时编译和动态编译有什么区别? 7 年前 |
![]() |
Artemis · 寄存器与指令之间的差异 7 年前 |
![]() |
Sam · 了解go工具编译和链接命令 7 年前 |