2016-06-14 29 views
12

Ho migrato un progetto dalla versione precedente di Xcode a Xcode 8. Quello che voglio è utilizzare il nuovo debugger di memoria visiva. È disponibile in nuovi progetti, ma è completamente mancante nel mio importato. Perchè è questo?Come abilitare Visual Memory Debugger in Xcode 8?

+0

Immagino che dovresti aggiornare il tuo progetto come raccomandato dalle impostazioni Xcode 8. –

+0

Vedete triangoli gialli (avvertenze) che richiedono l'aggiornamento? –

+0

Ho appena cliccato su quelli, ma il problema persiste. – PopKernel

risposta

12

Sembra che Swift 3 è richiesto per Visual Memory debugger a lavorare.

La mia app migrata a Swift 2.3 non ha funzionato, quando ho provato a migrare a Swift 3.0 ha funzionato all'istante.

La casella di controllo di disinfezione del runtime non è necessaria per il debugger della memoria visiva, tuttavia il motivo per cui è disabilitato è lo stesso.

+5

Confermato nelle [Xcode 8.0 beta note di rilascio] (http://adcdownload.apple.com/WWDC_2016/Xcode_8_beta/Release_Notes_for_Xcode_8_beta.pdf): "Si noti che diverse nuove funzionalità in Xcode 8 non sono supportate per i progetti che utilizzano Swift 2.3. Questi includono: • Debug grafico memoria • Sanitizzatore indirizzo • Generatore di codice build-time Core • Per poter utilizzare queste funzionalità deve migrare il tuo codice Swift a Swift 3. (26003920) " – zpasternack

+0

Il mio progetto con swift 2.3 sembra funzionare .. – Brynjar

0

Ho appena eseguito un progetto Objective-C iOS 7 realizzato con Xcode 7 in Xcode 8 (senza eseguire la migrazione) e l'icona Visual Memory Debugger viene visualizzata nella parte inferiore di Xcode nell'area di debug accanto al pulsante Debug View Hierarchy.

Visual memory Debugger

E 'il pulsante con i tre cerchi.

Dagli altri commenti, sembra che sia necessario Swift 3 per utilizzare questa funzione.

+0

Non è lì. Forse ha qualcosa a che fare con il mio progetto di essere un'app mac? – PopKernel

+0

Hmm, forse. Quale versione di OS X hai scelto come targeting in precedenza e con quale versione di Xcode è stato creato il progetto? – JAL

+1

wait, che dire di "runtime sanitation"? è attivato nello schema di nuovi progetti, ma non nel mio. È disattivato, dicendo "richiede la ricompilazione" – PopKernel

7

Sembra che il progetto richieda Swift 3 per abilitare Adress & Thread Sanitizer (che è il Debugger di memoria).

address sanitizer thread sanitizer

Per me questo vale per entrambi iOS & OS App X/MacOS. Entrambi scritti in Swift 2.2 & convertiti in 2.3.

Nota: l'ho provato solo su OS X El Capitan 10.11.5.

@gabriellanata conferma che funziona quando il codice viene convertito in Swift 3.

+1

Il debugger della memoria non è compatibile con il disinfettante del thread. Non è possibile eseguire entrambi contemporaneamente. – tzm41

+0

Buono a sapersi che è disponibile solo per 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 costruire errore

P.S. Objective-c supportato da Visual Memory Debugger

0

Se si fa clic su Memoria, il riquadro dell'editor di origine cambierà per mostrare alcune informazioni sulla memoria, incluso il motivo per cui è disabilitato. Nel mio caso, è stato perché avevo attivato Oggetti Zombi nello Schema. (Xcode 8.3.2)

Problemi correlati