簡體   English   中英

Xcode:斷點和奇怪的屏幕

[英]Xcode: Breakpoints and Weird Screens

當我在Xcode中遇到問題時,系統會告訴我使用斷點調試代碼。 逐步執行代碼,然后按控制台部分上方的那個小箭頭轉到下一行。 效果很好,就像當我在代碼中的第150行放置一個斷點時,然后我可以“ po”一個變量並找到它的值。

在此處輸入圖片說明

但是,當我嘗試單步執行代碼,並從一個方法轉到另一個方法時,很多時候我將被帶到這個由數字和字母組成的怪異屏幕上,那里的一切甚至都變得毫無意義。 見下文

在此處輸入圖片說明

WTF的意思是什么,我應該對我的Xcode項目顯然被截獲的Klingon過渡做些什么?

您使用諸如Objective-C或Swift之類的語言編寫的代碼被編譯成機器代碼,以便在給定的處理器上執行-仿真器x86或iOS設備ARM-在這種情況下,我猜您正在仿真器上運行。

機器代碼指令執行非常謹慎的操作。 例如c=a+b會轉換為類似的內容,例如從內存中獲取a,從內存中獲取b,然后將a加到b中,並將結果存儲到c

當您單步調試程序中的代碼時,即使該步驟可能已經執行了許多機器代碼指令,它也只會在程序的每一行停止。

您所看到的是已被調用的框架函數的匯編代碼 ,因為您已經“進入”了Xcode沒有源代碼的函數,因此它必須顯示每個低級操作。

您可以使用“退出”按鈕返回代碼,並使用“進入”而不是“進入”按鈕來避免看到此情況。

調試器中突出顯示的行實際上是在檢查%al 寄存器的值(寄存器是CPU芯片中的一小塊內存)。 如果結果%al為0,則下一條指令將跳轉到程序的其他部分。

在左側查看,然后單擊當前所選代碼之前的命令。 這通常會向您顯示遇到斷點之前編寫的最后一部分代碼

在下面的示例中,遇到斷點的地方是0,而我寫的代碼的最后一位是1。

。

暫無
暫無

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

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