在Xcode中,您可以設置帶有評估拋出異常的描述的條件的斷點,以確定是否停止該斷點。這在使用核心數據時特別有用,因爲核心數據將內部異常作爲控制流機制引發,並且您希望停止執行異常,而不是核心數據。 (注意:如果您想知道如何按照所述過濾異常,則在SO問題Ignore certain exceptions when using Xcode's All Exceptions breakpoint上回答)。區分iOS模擬器和LLDB中的設備
但是,這些過濾器通常依賴於寄存器的內容,因爲異常的地址存儲在那裏。在模擬器(運行在Intel架構上)中,寄存器爲$eax
,但在設備上(ARM架構),它的編號爲$r0
。
是否有可能制定一個區分這兩種架構的表達式,以便一個表達式使用正確的寄存器,而不管當前正在使用的架構如何?
你將如何去做一個Python腳本?我假設有一種方法可以將Python代碼自動加載到在Xcode中運行的LLDB中,並且斷點可以在LLDB中運行任意命令。你可能直接在LLDB命令中直接將條件轉換爲Python代碼? – jcoleman