2015-09-17 18 views
8

Ho letto sulla Runtime Sanitization nel Apple docs nel nuovo Xcode 7, quindi l'ho cercato e ho scoperto che è disabilitato. Sto usando il seme Xcode 7 GM.Perché "Enable Address Sanitizer" è disabilitato in Xcode 7?

Quando vado in azione Run del sistema> scheda Diagnostica, l'opzione Enable Address Sanitizer è disabilitata:

enter image description here

C'è qualche spiegazione su come le altre opzioni sono handicappati, ma non si parla del perché la l'opzione di disinfezione sarebbe disabilitata:

Alcuni strumenti diagnostici possono essere utilizzati in combinazione con altri; le opzioni disponibili nel riquadro Diagnostica sono abilitate e disabilitate in quanto vengono scelte opzioni diverse per aiutarti a selezionare le combinazioni di opzioni. Per esempio, attivare il disinfettante indirizzo e gli altri, gli strumenti non compatibili sono disabilitati e non possono essere scelti

Guardando il Clang 3.8 documentation for Addresssanitizer, sembra che può anche essere attivata, con l'aggiunta di un flag: -fsanitize=address. Ma dove questo flag dovrebbe essere usato nelle impostazioni di build è un mistero, e discutibile poiché esiste anche come opzione di checkbox nello schema.

trovato anche questo SO answer, ma è piuttosto complesso, e probabilmente superati, in quanto lo era nel 2013.

risposta

9

Attualmente non è possibile utilizzare Guardia Malloc e Indirizzo Sanitizer insieme. Selezionando la casella di controllo Abilita protezione Malloc si disattiva la casella di controllo Abilita disinfettante indirizzi. Deseleziona la casella di controllo Enable Guard Malloc se si desidera utilizzare Address Sanitizer.

+0

Ho già selezionato 'Abilita Guardia Malloc' e non ho pensato di deselezionarlo. Grazie! – Sheamus

+2

L'attivazione di una delle seguenti opzioni impedisce l'uso di Address Sanitizer: Abilita Malloc Scribble, Abilita Malloc Guard Edge, Abilita Guard Malloc e Malloc Stack. Tutte queste opzioni dovrebbero essere deselezionate in modo che l'Address Sanitizer possa essere attivato. – Dalzhim

+0

Perché è così? – jcanizales