第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

當(dāng)泄漏儀器沒(méi)有顯示時(shí),如何調(diào)試內(nèi)存泄漏?

當(dāng)泄漏儀器沒(méi)有顯示時(shí),如何調(diào)試內(nèi)存泄漏?

慕斯王 2019-07-12 09:39:49
當(dāng)泄漏儀器沒(méi)有顯示時(shí),如何調(diào)試內(nèi)存泄漏?我有一個(gè)用SWIFT編寫的iOS應(yīng)用程序,它正在泄漏內(nèi)存-在某些情況下,一些對(duì)象應(yīng)該被釋放,但它們不是。我是通過(guò)簡(jiǎn)單的補(bǔ)充來(lái)了解這個(gè)問(wèn)題的。deinit調(diào)試這樣的消息:deinit {     println("DEINIT: KeysProvider released")}因此,在發(fā)生導(dǎo)致對(duì)象釋放的事件之后,deinit消息應(yīng)該出現(xiàn)在控制臺(tái)中。但是,對(duì)于一些應(yīng)該釋放的對(duì)象,消息丟失了。不過(guò),泄漏開發(fā)工具不會(huì)顯示任何泄漏。我如何解決這種情況?
查看完整描述

3 回答

?
飲歌長(zhǎng)嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

在Xcode 8中,您可以單擊“調(diào)試內(nèi)存圖”按鈕,在調(diào)試工具欄中(顯示在屏幕底部):

只需標(biāo)識(shí)左側(cè)面板中您認(rèn)為應(yīng)該已解除分配的對(duì)象,它將顯示對(duì)象圖(如上面的主畫布所示)。這對(duì)于快速確定在所涉對(duì)象上建立強(qiáng)引用的位置非常有用。從這里開始,您可以開始您的研究,診斷為什么這些強(qiáng)引用沒(méi)有得到解決(例如,如果所討論的對(duì)象具有來(lái)自本應(yīng)被取消分配的其他對(duì)象的強(qiáng)引用,也可以查看該對(duì)象的圖表,您可能會(huì)發(fā)現(xiàn)這個(gè)問(wèn)題(例如,強(qiáng)引用周期、重復(fù)計(jì)時(shí)器等)。

注意,在右邊的面板上,我看到了呼叫樹。我是通過(guò)打開方案設(shè)置中的“malloc堆?!比罩具x項(xiàng)來(lái)實(shí)現(xiàn)這一點(diǎn)的:

無(wú)論如何,這樣做之后,您可以單擊上面第一個(gè)屏幕快照的右面板中的堆棧跟蹤中顯示的相關(guān)方法調(diào)用旁邊的箭頭,您可以看到最初建立強(qiáng)引用的位置:

上述內(nèi)存診斷技術(shù)(及更多)將在WWDC 2016的后期演示。用Xcode進(jìn)行可視化調(diào)試.


在我最初的回答中,傳統(tǒng)的儀器技術(shù)(如果使用舊版本的Xcode特別有用)將在下面描述。


我建議使用具有“記錄參考計(jì)數(shù)”功能的儀器“分配”工具:

然后,您可以在“儀器”中運(yùn)行該應(yīng)用程序,然后搜索您知道正在泄漏的類,然后單擊箭頭鉆進(jìn)去:

然后,您可以使用右側(cè)的“ExtendedDetails”面板鉆研詳細(xì)信息并查看堆棧跟蹤:

在“擴(kuò)展詳細(xì)信息”面板中,將注意力集中在黑色代碼上,而不是系統(tǒng)調(diào)用的灰色代碼上。無(wú)論如何,在“擴(kuò)展詳細(xì)信息”面板中,您可以鉆到源代碼中,在儀器中:

有關(guān)使用儀器追蹤記憶體問(wèn)題的更多資料及示范,請(qǐng)參閱:


查看完整回答
反對(duì) 回復(fù) 2019-07-12
  • 3 回答
  • 0 關(guān)注
  • 536 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)