3 回答

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
“ EXC_BREAKPOINT(SIGTRAP)”異常是否由調(diào)試斷點(diǎn)引起?
否。實(shí)際上,反過(guò)來(lái):SIGTRAP(跟蹤陷阱)將導(dǎo)致調(diào)試器中斷(中斷)您的程序,就像實(shí)際斷點(diǎn)一樣。但這是因?yàn)檎{(diào)試器總是在崩潰時(shí)中斷,而SIGTRAP(就像其他幾個(gè)信號(hào)一樣)是崩潰的一種類型。
SIGTRAP通常是由引發(fā)NSExceptions引起的,但并非總是如此-甚至有可能直接自己引發(fā)。
現(xiàn)在,我注意到我忘記刪除一些調(diào)試斷點(diǎn),包括_NSLockError,[NSException提高]和objc_exception_throw。
這些不是斷點(diǎn)。其中兩個(gè)是函數(shù),-[NSException raise]是一種方法。
您是說(shuō)要在這些函數(shù)和方法上設(shè)置斷點(diǎn)嗎?
我假設(shè)使用“發(fā)布”配置可防止設(shè)置任何斷點(diǎn)-
沒(méi)有。
這些配置是構(gòu)建配置。它們影響Xcode構(gòu)建應(yīng)用程序的方式。
斷點(diǎn)不是構(gòu)建的一部分;您在調(diào)試器中設(shè)置它們。它們僅存在,只會(huì)被命中,并且只有在調(diào)試器下運(yùn)行程序時(shí)才停止程序。
由于它們不是構(gòu)建的一部分,因此不可能僅通過(guò)向他們提供應(yīng)用程序捆綁包就將斷點(diǎn)傳遞給用戶。
我不確定斷點(diǎn)是如何工作的……
當(dāng)您的程序到達(dá)斷點(diǎn)時(shí),調(diào)試器將中斷(中斷)您的程序,隨后您可以檢查程序的狀態(tài)并仔細(xì)向前查看程序如何出錯(cuò)。
由于是調(diào)試器停止程序,因此當(dāng)您不在調(diào)試器下運(yùn)行程序時(shí),斷點(diǎn)不起作用。
…或者是否需要從gdb內(nèi)部運(yùn)行程序才能使斷點(diǎn)生效。
是的 調(diào)試器斷點(diǎn)僅在調(diào)試器中起作用。
我的問(wèn)題是:我離開(kāi)斷點(diǎn)集后會(huì)導(dǎo)致用戶觀察到崩潰的原因嗎?
沒(méi)有。
首先,如前所述,即使這些斷點(diǎn)確實(shí)以某種方式傳遞到用戶的系統(tǒng)中,斷點(diǎn)也僅在調(diào)試器中有效。如果您的程序不在調(diào)試器下運(yùn)行,則調(diào)試器無(wú)法在斷點(diǎn)處停止。用戶幾乎可以肯定不在調(diào)試器下運(yùn)行您的應(yīng)用程序,尤其是因?yàn)樗麄儚谋罎⑷罩局凶N了該應(yīng)用程序。
即使他們與所有這些斷點(diǎn)設(shè)置的調(diào)試器下運(yùn)行你的應(yīng)用程序,當(dāng)你的程序到這一點(diǎn),這些斷點(diǎn)所以人們只能火災(zāi),如果你或可可稱為斷點(diǎn)只打了_NSLockError,-[NSException raise]或objc_exception_throw。達(dá)到這一點(diǎn)并不是問(wèn)題的原因,而是問(wèn)題的征兆。
而且,如果由于其中之一被調(diào)用而導(dǎo)致崩潰,那么崩潰日志中將至少有其中一個(gè)被命名。沒(méi)有。
因此,這與您的斷點(diǎn)無(wú)關(guān)(不涉及其他機(jī)器,調(diào)試器),也不是Cocoa異常-正如我提到的那樣,Cocoa異常是SIGTRAP的原因之一,但不是唯一的原因。您遇到了另一個(gè)。
如果不是,還有其他人對(duì)[NSFont fontWithName:size:]有類似的問(wèn)題嗎?
因?yàn)槟袛嗔吮罎⑷罩?,所以我們無(wú)法說(shuō)出我們遇到的任何問(wèn)題是否相似。我們對(duì)于崩潰發(fā)生的背景一無(wú)所知。
唯一值得刪除的是“二進(jìn)制映像”部分,因?yàn)槲覀儧](méi)有您的dSYM軟件包,這意味著我們無(wú)法使用該部分來(lái)表示崩潰日志。
另一方面,您可以。我為此目的編寫(xiě)了一個(gè)應(yīng)用程序;將崩潰日志提供給它,并且它應(yīng)該自動(dòng)檢測(cè)dSYM軟件包(您為分發(fā)的每個(gè)Release版本保留dSYM軟件包,對(duì)嗎?),然后將函數(shù)和方法名恢復(fù)到堆棧跟蹤中,無(wú)論函數(shù)和方法出現(xiàn)在何處。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
此用戶極有可能安裝了損壞的字體。堆棧跟蹤絕對(duì)支持該假設(shè),事實(shí)上它僅影響一個(gè)用戶。
在這種情況下,除了讓用戶刪除有問(wèn)題的字體外,您無(wú)能為力,因?yàn)楸罎l(fā)生在Apple代碼的深處。
嘗試讓用戶在“字體書(shū)”中運(yùn)行字體驗(yàn)證。為此,請(qǐng)啟動(dòng)“字體書(shū)”,在源列表中單擊“ 所有字體 ”,然后選擇所有列出的字體。然后,您可以從“ 文件”菜單中選擇“ 驗(yàn)證字體 ” 。
- 3 回答
- 0 關(guān)注
- 4333 瀏覽
添加回答
舉報(bào)