2016-06-14 36 views
12

我將一個項目從以前版本的Xcode遷移到Xcode 8.我想要的是使用新的可視化內存調試器。它在新項目中可用,但在我的導入項目中完全沒有。爲什麼是這樣?如何在Xcode 8中啓用Visual Memory Debugger?

+0

我想你應該更新你的項目推薦Xcode 8設置。 –

+0

您是否看到任何黃色三角形(警告)要求您更新? –

+0

我只是單擊了這些,但問題仍然存在。 – PopKernel

回答

12

似乎夫特3所需的視覺記憶調試工作。

我的應用程序遷移到Swift 2.3沒有工作,當我試圖將其遷移到Swift 3.0時它立即工作。

可視化內存調試器不需要運行時清理複選框,但其禁用的原因是相同的。

+5

在[Xcode 8.0 beta版本說明](http://adcdownload.apple.com/WWDC_2016/Xcode_8_beta/Release_Notes_for_Xcode_8_beta.pdf)中證實:「請注意,在Xcode 8幾項新功能不支持使用雨燕2.3的項目,其中包括: •內存圖形調試 •地址消毒劑 •螺紋消毒 •核心數據建立時代碼生成 爲了能夠使用這些功能,你必須將您的Swift代碼遷移到Swift 3.(26003920)「 – zpasternack

+0

我的項目使用swift 2.3似乎可以正常工作.. – Brynjar

0

我剛剛在Xcode 8中運行了用Xcode 7製作的Objective-C iOS 7項目(無需遷移),並且在Debug View Hierarchy按鈕旁邊的調試區域中的Xcode底部出現Visual Memory Debugger圖標。

Visual memory Debugger

這是與三個圓圈按鈕。

從其他評論看來,Swift 3可能需要使用此功能。

+0

進行運行時問題檢測。它不在那裏。也許這與我的項目是一個mac應用程序有關? – PopKernel

+0

嗯,也許吧。您之前定位的是什麼版本的OS X,以及該項目創建的Xcode版本是什麼? – JAL

+1

等一下,「運行時衛生」怎麼樣?它在新項目的計劃中被切換,但不在我的項目中。它變灰了,說「需要重新編譯」 – PopKernel

7

看起來項目需要Swift 3來啓用地址&線程清理程序(這是內存調試器)。

address sanitizer thread sanitizer

對我來說,這適用於iOS的& OS X/MacOS的應用程序。都寫在Swift 2.2 &轉換爲2.3。

注:我只在OS X El Capitan 10.11.5上測試過。

@gabriellanata確認它的工作原理,當代碼被轉換爲夫特3.

+1

內存調試程序與線程清理程序不兼容。你不能同時運行兩個。 – tzm41

+0

知道它僅適用於swift 3 ... –

0
Argument '-sanitize=address' is not supported on the Swift 2.3 toolchain. 
You will need to migrate your project to Swift 3 to use this feature. 

的Xcode 8 GM建立錯誤

P.S. Objective-C支持的視覺內存調試器

0

如果您單擊內存,源編輯器窗格將更改爲顯示一些內存信息,包括其被禁用的原因。就我而言,這是因爲我在計劃中啓用了殭屍物件。 (Xcode 8.3.2)