2012-11-15 5 views
58

Ho abilitato il controllo della memoria in Xcode (Modifica schema -> Opzioni). Ora sto ottenendo quanto segue quando eseguo il debug del dispositivo: dyld: could not load inserted library '/usr/lib/libgmalloc.dylib' because image not found. La misura è stata presa in modo proattivo nella speranza di cogliere errori all'inizio del ciclo.Xcode Guard Malloc e sul debug del dispositivo: immagine "libgmalloc.dylib" non trovata

Il controllo della memoria non è valido su un dispositivo? Appare valido poiché è stato riconosciuto e esaminato in base allo http://lists.apple.com/archives/xcode-users/2012/Mar/msg00271.html. Inoltre, Xcode non ha avuto lamentele durante la compilazione e il collegamento. Se non è valido per un dispositivo, perché Xcode sta inserendo la libreria? Ci sono soluzioni? Googling returned a few hits, ma non ho visto soluzioni concrete.

Come si abilita Xcode Guard Malloc durante il debug su un dispositivo?

+2

Sì, ho avuto il mio pieno e il suo solo Mercoledì :( – jww

+3

Ottengo lo stesso messaggio attivando Guard Malloc in Xcode 4.5. La mailing list ha suggerito di installare l'aggiornamento combo Lion 10.7.3, ma sono attivo Mountain Lion 10.8 Proverò a installare l'aggiornamento combo 10.8.2 (spero non invano): http://support.apple.com/kb/DL1581 – LearnCocos2D

risposta

60

Per risolvere il problema, ho creato due nuovi schemi Xcode. Uno è chiamato 'XXX Device' e non include le guardie malloc; il secondo è 'XXX Simulator' e include le guardie malloc.

L'aggiunta di uno schema per scopi dispositivo/simulatore è discutibile (http://www.cocoabuilder.com/archive/xcode/303307-why-does-xcode-create-nonsensical-destinations-in-every-scheme.html). Apparentemente, Dave Duncan non ha riscontrato un problema in cui Xcode non fa qualcosa correttamente (o non usa strumenti come le guardie malloc).

Questo puzza di software spazzatura di Cupertino. +1 ad Apple e al suo schifoso dipartimento QA (se esiste) che consente a un altro bug di volare libero.

+1

Mi ero dimenticato di averlo trasformato. Ho trovato questa risposta: non avevo idea del motivo per cui la mia app si è bloccata immediatamente. –

+0

Succhia per me, perché Unity ha portato via la possibilità di creare build XCode che possono girare su un simulatore = /. Qualche idea? – cowlinator

+3

+1 per snarky su Apple QA. – YvesLeBorg

60

Non è possibile utilizzare GuardMalloc sul dispositivo.

2

Il riavvio del dispositivo lo ha risolto. iOS non è stato aggiornato. Davvero pessimo !

+0

Il riavvio non risolve il problema per me. – ThomasW

9

Come altri hanno risposto, non è possibile utilizzare Enable Guard Malloc sul dispositivo, ma è possibile utilizzarlo sul simulatore.

Tutti e 3 le altre opzioni di gestione della memoria, come di Xcode 7.3.1, può essere utilizzati su dispositivi: Enable Malloc Scribble, Enable Malloc Guard Edges e Enable Zombie Objects.

Problemi correlati