2014-12-11 52 views
2

我在異常斷點處停止。我如何使用LLDB控制檯來判斷拋出了哪個異常?XCode:找出在異常斷點處停止時拋出的異常

根據this comment我應該可以輸入po $r0以查看異常對象「因爲它作爲第一個參數傳遞給objc_exception_throw」但該寄存器似乎不存在於ARM64上。

閱讀iOS ABI Function Call Guide之後,我也試過po $x0,但是寄存器x0x18都是空的。

我在ARM64上使用XCode 5.1,iOS 7.1。

+1

您確定您選擇了正確的堆棧框架(即objc_exception_throw框架)嗎? – 2014-12-11 03:49:23

+0

啊!那樣做了。謝謝 – bcattle 2014-12-11 03:50:39

+0

我會讓它成爲後代的答案。 – 2014-12-11 03:51:03

回答

1

您確定您選擇了正確的堆棧幀(即objc_exception_throw幀)嗎?

根據this answer,您的po $x0應該工作。

+1

ARM64上的另一種選擇是'po $ arg1',直到'po $ arg6'。感謝您的幫助 – bcattle 2014-12-11 03:52:45

+0

@bcattle呵呵!我不知道。涼! – 2014-12-11 04:01:17