Sto usando Xcode 4.3.2 con lldb come mio debugger.Come si imposta un punto di interruzione simbolico su _WebThreadLockFromAnyThread in Xcode?
Ho ereditato un progetto che contiene il codice che sta chiamando UIKit dal thread secondari, come mostrato da questi messaggi di log:
2012-05-02 21: 48: 14,603 Appname Dev [77594: 16e0f] void _WebThreadLockFromAnyThread (bool), 0x8d5f810: Ottenimento del blocco Web da un thread diverso dal thread principale o dal thread Web. UIKit non deve essere chiamato da un thread secondario.
Ho ripulito la maggior parte del codice che stava effettuando chiamate UIKit da thread secondari, ma di tanto in tanto vedo ancora questo messaggio nei log. L'app non si arresta in modo anomalo, quindi è difficile individuare dove si trova il problema.
mi piacerebbe impostare un punto di interruzione _WebThreadLockFromAnyThread
, ma quando provo a impostare un punto di interruzione simbolica utilizzando:
b _WebThreadLockFromAnyThread
il debugger mi dice:
breakpoint impostato --name ' _WebThreadLockFromAnyThread 'Punto di interruzione creato: 12: name =' _WebThreadLockFromAnyThread ', posizioni = 0 (in sospeso) AVVISO: impossibile risolvere il punto di interruzione in posizioni reali .
Ho anche provato a creare il punto di interruzione simbolico utilizzando l'interfaccia utente nel navigatore di breakpoint, ma non sono sicuro di cosa inserire per il modulo. Quando lascio il modulo vuoto, viene creato il punto di interruzione ma non si interrompe ancora quando viene visualizzato il messaggio di registro nella console di debug.
Qualcuno può dirmi come posso aggiungere un punto di interruzione su _WebThreadLockFromAnyThread
e anche come determinare quale sia il modulo di definizione per questo simbolo?
Fantastico, grazie mille! Ho finito per usare il seguente comando simile che imposta anche una condizione tale che si interrompe solo se la funzione è chiamata al di fuori del thread principale: 'break set -n WebThreadLockFromAnyThread -c '! (BOOL) [NSThread isMainThread]'' – Greg