objective-c – Xcode调试器 – 为什么你只能到目前为止进入Apple框架代码?

objective-c – Xcode调试器 – 为什么你只能到目前为止进入Apple框架代码?,第1张

概述我习惯在 Xcode的obj-c代码中设置断点,然后进入/退出我的方法,但我不完全理解当我发现自己单步执行Apple框架代码时会发生什么. 当然,我们没有源代码,所以你只能看到反汇编程序代码(我不知道汇编程序btw) 如果我(为了它的地狱)只是继续逐步通过程序集,然后最终我从调试器步进启动,在堆栈框架窗格中,我只是我的应用程序列为正在运行,模拟器中的应用程序现在正在运行不再停顿. 我知道这是一个理 我习惯在 Xcode的obj-c代码中设置断点,然后进入/退出我的方法,但我不完全理解当我发现自己单步执行Apple框架代码时会发生什么.

当然,我们没有源代码,所以你只能看到反汇编程序代码(我不知道汇编程序btw)

如果我(为了它的地狱)只是继续逐步通过程序集,然后最终我从调试器步进启动,在堆栈框架窗格中,我只是我的应用程序列为正在运行,模拟器中的应用程序现在正在运行不再停顿.

我知道这是一个理论问题,但为什么我不能无休止地继续执行汇编代码?我的应用程序毕竟还在运行.

解决方法 你正在经历的是运行循环.运行循环负责查找应用程序处理的事件并将它们发送到正确的处理程序.它通过调用 *** 作系统来请求下一个事件来完成此 *** 作.如果系统没有该应用程序的任何待处理事件,它将使应用程序进入休眠状态,直到它获得一个.然后它将返回新事件,运行循环将处理它.

但是,由于应用程序将控制权传递给 *** 作系统以获取事件,因此在控制权返回应用程序之前,不允许调试器查看发生的情况.由于它正在逐步执行它看到的唯一指令,因此调试器将应用程序视为正在运行. Xcode向您报告并激活模拟器,以便您可以在运行时查看它正在执行的 *** 作.

一旦在模拟器中执行事件, *** 作系统就会发现应用程序有一个待处理的事件并将其唤醒,将控制权返回给运行循环.调试器将此视为完成最后一条指令的步骤,并允许您继续正常步进.从这一点开始,您可以逐步执行应用程序使用的所有事件处理代码,如果您进入调用,甚至可能返回到代码中,然后再返回到运行循环以再次等待下一个事件.

总结

以上是内存溢出为你收集整理的objective-c – Xcode调试器 – 为什么你只能到目前为止进入Apple框架代码?全部内容,希望文章能够帮你解决objective-c – Xcode调试器 – 为什么你只能到目前为止进入Apple框架代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1007383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存