簡體   English   中英

如何檢查Xcode 4中的匯編?

[英]How can I examine assembly in Xcode 4?

我正在調整一些在我的iPhone應用程序中以緊密循環運行的代碼,我很想看到生成的匯編代碼,看看是否有任何異常。

在Xcode 3.x中,菜單中有一個Build> Show Assembly Code選項,但是在Xcode 4的菜單或文檔中沒有看到任何內容。

有人知道怎么做嗎? 我可以做“gcc -S”,但我的理解是,這與整個項目的編譯方式不同。

據我所知,“View Disassembly”選項已經消失。

這是一個解決方法:

  1. 建立你的項目
  2. 打開構建日志,並使用搜索窗口查找用於構建您感興趣的源文件的編譯命令。復制整個構建命令。
  3. 打開終端窗口,然后cd到項目目錄。
  4. 將build命令從構建日志粘貼到終端中,並附加-save-temps 點擊進入。
  5. 您現在有兩個新文件yourFile.iyourFile.s ,它們分別是預處理源和生成的程序集,它們的構建方式與項目中的完全相同。

或者,您可以使用otool -tvV /path/to/binaryOrDotOFile反匯編構建的二進制文件(或源文件生成的目標文件)。

最后,如果這是您想要的功能,請確保提交錯誤報告!

編輯:此功能返回Xcode 4.1。 在助理編輯器窗格中,選擇“生成的輸出 - > YourFilename(程序集)”。 繁榮!

您可以通過轉到Product-> Generate Output-> Assembly File來構建Assembly。 希望這是你正在尋找的。

注意:他們在Xcode 5中再次更改了它。上面的答案現在正在做的事情

在Xcode 5.0.2中,您可以選擇產品→執行操作→“組裝MyController.m”

注意雖然這個問題涉及Xcode 4,但它在谷歌上的結果很高。

對於像我這樣的懶人,Stephen Canon上面建議使用-save-temps標志可以用更少的工作完成:轉到項目設置 - >構建階段 - >編譯源代碼並注意“編譯器標志”列。 將-save-temps添加到需要反匯編的文件中,.ii和.s文件最終會出現在項目目錄中。

可能更好的解決方案是使用類似“-Wa,-alh”和shell重定向“> myFile.s”的自定義規則,但我不知道如何輕松復制默認構建規則進行修改。

世界上如何從“XCode 4”中刪除“查看程序集”?!?!

根據對Xcode 4的全面回顧 ,此功能已從Xcode 4中刪除。如果您想嘗試將其恢復,則需要提交bug / rdar。

另一個有用的快速瀏覽Xcode 4功能的同一作者: http//pilky.me/view/16

嘗試按Ctrl + F7一次或多次,您將看到匯編代碼。

在調試器中運行並中斷執行,您可以在調試器中鍵入“disass”。 默認情況下,它會反匯編當前函數,因此在您想要查看的函數中放置斷點通常最快。 在LLDB中,“disass -h”將顯示其他選項,例如反匯編命名函數(不確定這是否適用於ObjC選擇器)。

比手工重建源文件容易得多,至少......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM