Attualmente sto scrivendo un app iOS con Xcode 4.3.2. Nella maggior parte delle parti del mio codice, il debugging con LLDB funziona bene. Tuttavia a un certo punto ricevo uno strano messaggio mentre passo attraverso il mio codice. Quando mi passa il mouse sopra un iVar, si dicemessaggio di errore strano in Xcode 4.3 con LLDB
Errore [IRForTarget]: Impossibile trovare Objective-C simbolo Ivar indiretta OBJC_IVAR _ $ _ MyFancyClass.iVar
invece di mostrare me il valore. Tuttavia, nel numero Variables View
, posso vederlo bene. Fino a quando sto selezionando Print Description of ...
che è, perché poi, Xcode si blocca ... Quando uso GDB, le opere in bilico, ma il tipo e valori della variabile sono sbagliate.
ho Recon che c'è qualcosa di sbagliato con il mio codice che a sua volta fa sì che il debugger di sicuro. Tuttavia, il codice funziona correttamente. Mi piacerebbe fornire qualche samplecode ma la classe è piuttosto lunga e non riesco a individuare la posizione esatta del mio errore. Quindi qualcuno ha riscontrato un comportamento simile?
UPDATE: In realtà, sembra come se questo accade ovunque nel mio codice, non solo in alcuni file specifici. Se aiuta, mentre LLDB mostra il messaggio precedente, GDB mostra sempre un oggetto della Classe che possiede l'iVar, anziché l'iVar stesso. Sembra che ci sia qualcosa di sbagliato nella gestione della memoria. Per esempio, se dico qualcosa di simile
[notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA];
il selettore viene invocata anche quando ho
[notificationCenter postNotificationName:bar object:objB];
Il codice può essere lungo, ma non sembrare abbastanza persone hanno incontrato questo. Puoi solo mostrare una versione riassuntiva di un codice in cui si verifica questo comportamento? –
Beh, visto che succede assolutamente dappertutto nel mio Codice, non so davvero cosa potrei postare ... – Phlibbo
Sto solo indovinando qui quindi non sto postando una risposta, ma cosa succede se provi ad usare il debugger console e stampare l'oggetto usando "po"? Inoltre, hai forse qualche tipo di configurazione gdb speciale in atto? È una libreria inclusa che stai cercando di eseguire il debug? Stai costruendo con le informazioni di debug abilitate? Controlla le impostazioni di compilazione (genera simboli di debug, livello di ottimizzazione, formato delle informazioni di debug). –