2013-08-28 92 views
-2

我使用調試器隨時暫停執行我的程序並查看運行代碼的狀態,因此我在運行可執行文件之前設置了斷點,以便我可以停止在已知點並查看我的源代碼中的變量值。在Xcode中使用斷點

Set breakpoint and check the step over

我認爲我的代碼後,它涉及到一個新的屏幕。在這裏,我按下「step over」按鈕意味着它來查看下一行,如果我按下「繼續執行程序」按鈕意味着它跳過一步一步的執行並進入執行部分。圖像如下所示。

New screen shows Assembly Language

我的疑問是,爲什麼編譯器來這裏看我的代碼後?如何分析這個彙編語言編碼和這個代碼的目的是什麼?

回答

1

如果您暫停執行或觸發了斷點,則會打開調試區域,顯示變量和寄存器的值以及調試控制檯。您可以使用調試區域工具欄右端的按鈕來顯示變量控制檯窗格或隱藏其中一個。

變量窗格顯示變量和寄存器。您指定使用彈出菜單中的變量窗格的左上角顯示哪些項目:

  1. 自動顯示只有你最有可能有興趣 中給出的當前環境變量。
  2. 本地顯示局部變量。
  3. 全部顯示所有變量和寄存器。

使用搜索字段過濾變量窗格中顯示的項目。

控制檯窗格顯示程序輸出並允許您向調試器工具輸入命令。您可以使用控制檯窗格左上角的彈出菜單指定控制檯顯示的輸出類型:

  1. 所有輸出顯示目標和調試器輸出。
  2. 調試器輸出僅顯示調試器輸出。
  3. 目標輸出僅顯示目標輸出。

使用這些來了解在斷點處發生了什麼。

1

也許你的代碼鑄造異常,並返回到[UIViewController loadViewIfRequired]方法。這個方法在編譯後的程序中,現在是二進制的,所以你不會看到源代碼,而是顯示彙編語言。

[UIViewController loadViewIfRequired]有可能有異常處理代碼。