我正在调整一些在我的iPhone应用程序中以紧密循环运行的代码,我很想看到生成的汇编代码,看看是否有任何不寻常的东西。
在Xcode 3.x中,有一个 Build>在菜单中显示汇编代码选项,但我在Xcode 4的菜单或文档中看不到任何内容。
任何人都知道如何做到这一点?我可以做“gcc -S”,但我的理解是,这与整个项目的编译方式不同。
答案 0 :(得分:20)
据我所知,“查看反汇编”选项已经消失。
这是一个解决方法:
-save-temps
。点击进入。yourFile.i
和yourFile.s
,它们分别是预处理源和生成的程序集,与项目中的完全相同。或者,您可以使用otool -tvV /path/to/binaryOrDotOFile
反汇编构建的二进制文件(或源文件生成的目标文件)。
最后,如果这是您想要的功能,请确保提交错误报告!
修改强> 此功能返回Xcode 4.1。在助理编辑器窗格中,选择“生成的输出 - > YourFilename(程序集)”。吊杆!
答案 1 :(得分:16)
您可以通过转到Product-> Generate Output-> Assembly File来构建Assembly。 希望这是你正在寻找的。 p>
注意:他们在Xcode 5中再次更改了它。上面的答案正在做的事情
答案 2 :(得分:11)
在Xcode 5.0.2中,您可以选择产品→执行操作→“组装MyController.m”
N.B。 虽然这个问题涉及Xcode 4,但它在谷歌上的结果很高。
答案 3 :(得分:4)
对于像我这样的懒人,Stephen Canon上面建议使用-save-temps标志可以用更少的工作来完成:转到项目设置 - >构建阶段 - >编译源代码并注意“编译器标志”列。将-save-temps添加到需要反汇编的文件中,.ii和.s文件最终会出现在项目目录中。
可能更好的解决方案是制作一个自定义规则,例如“-Wa,-alh”和shell重定向“> myFile.s”,但我不知道如何轻松复制默认构建规则修改。
世界上如何从“XCode 4”中删除“查看程序集”?!?!
答案 4 :(得分:3)
根据Xcode 4的this thorough review,此功能已从Xcode 4中删除。如果您想尝试将其恢复,则需要提交bug / rdar。
同一作者对Xcode 4功能的另一个有用的快速浏览:http://pilky.me/view/16
答案 5 :(得分:3)
尝试按Ctrl + F7一次或多次,您将看到汇编代码。
答案 6 :(得分:2)
在调试器中运行并中断执行,您可以在调试器中键入“disass”。默认情况下,它会反汇编当前函数,因此在您想要查看的函数中放置断点通常最快。在LLDB中,“disass -h”将显示其他选项,例如反汇编命名函数(不确定这是否适用于ObjC选择器)。
比手动重建源文件容易得多,至少......