2

我习惯于使用 Visual Studio 的调试器,它本质上会跟踪应用程序的逻辑路径,从一个方法跳到另一个方法,让您看到某些东西可能无法正常工作。

当我在 Xcode (4.6.3) 中根据需要使用“Step into”或“step over”进行调试时,我会通过一些方法,但它似乎会跳转到已编译的代码中,我迷路了。由于这个原因,我看不到事件的逻辑流程或顺序,所以我做错了什么吗?

如何跟踪代码中实际执行的操作,但以一种有意义且不向我显示编译代码的方式?

例如,我在 ViewDidLoad 上放置了一个断点,因为我想看看调用该方法后会发生什么,因为我的应用程序没有按预期工作。其他地方的断点没有被击中,所以我需要追踪一个问题。

因此,我的 ViewDidLoad 断点被命中,我通过该方法工作,然后当调试器到达该方法的末尾时,它飞入已编译的代码,因此我不知道事件顺序中的下一步是什么。

4

2 回答 2

0

我认为你无法避免这个问题,因为它“飞走”的代码可能没有符号,而且无论如何你没有源代码。

这种情况并非 Xcode 独有;Visual Studio 和其他所有操作系统都会发生这种情况。

一种方法是提供视图/任何东西的所有子类方法(即使它们所做的只是调用 the [super method],仅此而已)并在每个方法上设置断点。

或者,如果实例变量以意想不到的方式受到打击,请设置一个观察点

于 2013-07-25T11:04:22.077 回答
0

我面临着完全相同的情况。但是,以下两个链接帮助我理解了它发生的原因。

基本上,您首先需要在DEBUG->DEBUG WORKFLOW->SHOW DISASSEMBLY WHEN DEBUGGING中“取消检查”选项。

然后,如果您尝试调试自己的代码,那么调试的工作方式与在 Visual Studio 中的方式相同。但是,如果您正在查看的代码是从某个框架调用的,那么无论“显示反汇编”的设置是什么,调试器肯定会返回到汇编代码。

检查这些链接以获得进一步的清晰度。它们是来自同一页面的答案。

XCode Debugger:为什么它只显示汇编程序?
https://stackoverflow.com/a/1421275/2377928
https://stackoverflow.com/a/7301489/2377928

谢谢,

希望这可以帮助!

于 2014-02-17T09:28:02.927 回答