2011-01-13 9 views
8

Sto tentando di profilare il mio codice utilizzando il simulatore di iPhone. Ho attivato Genera file copertura di prova e Flusso programma strumento e aggiunto -lgcov alle bandiere del linker. Secondo tutto quello che ho letto dovrebbe essere tutto ciò che devo fare in termini di configurazione.iPhone: impossibile ottenere il simulatore per generare file di dati di profilazione .gcda

Aggiornamento: generare file copertura di test innesca il -ftest-copertura bandiera e flusso del programma Strumento innesca il -fprofile-archi bandiera. Ho controllato i log di costruzione e vengono impostati durante la compilazione.

L'esecuzione del programma posso vedere i .gcno file che appare a fianco del codice compilato .o nella build/.build/Debug-iphonesimulator/.build/directory/i386 oggetti-normali.

Ma quando eseguo l'app nel simulatore non viene visualizzato alcun file * .gcda.

La mia comprensione è che questi file contengono i dati della strumentazione. Ma non riesco a trovarli da nessuna parte sul computer.

So che possono essere prodotti e visualizzati accanto ai file * .gcno perché ho una vecchia directory buil trash che li ha. Non riesco proprio a capire cosa devo fare per farli apparire e registrare la corsa.

Qualsiasi aiuto apprezzato.

+0

Sei per caso cercando di trovare e di sbarazzarsi di "colli di bottiglia"? Se è così, [considerare casuale pausa] (http://stackoverflow.com/questions/926266/performance-optimization-strategies-of-last-resort/927773#927773). –

+0

No. Il mio interesse principale è nel vedere la quantità di applicazione è coperto da test di unità e di avermi aiutato a pin aree punto vorrei aggiungere ulteriori test a. Venendo da un java/sfondo agile, test di unità è una cosa che mi piace fare :) – drekka

risposta

1

Spero che questo link darebbe qualche idea Esplorando il link che ho trovato

Il file .gcno viene generato quando il file sorgente viene compilato con l'opzione -ftest-coverage GCC . Contiene informazioni per ricostruire i grafici di blocco di base e assegnare i numeri di linea di origine ai blocchi.

Il file .gcda viene generato quando un programma file contenente oggetti costruiti con l'opzione GCC -fprofile-archi è eseguito. Un file .gcda separato è creato per ogni file oggetto compilato con questa opzione. Contiene i conteggi delle transizioni arco e alcune informazioni di riepilogo .

Quindi è possibile che si stiano creando impostazioni errate. L'informazione è menzionato sul http://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html#Gcov-Data-Files

1

This link potrebbe avere la risposta, in pratica i file gcda non vengono generati finché l'app non si chiude correttamente. Dà due possibili soluzioni:

  • completamente uscire dal simulatore
  • aggiungere questo alla tua plist (ma non per build di rilascio):

    <key>UIApplicationExitsOnSuspend</key> 
    <true/> 
    
+0

Grazie. Ho provato entrambe le soluzioni. Completando completamente il simulatore e aggiungendo quella linea al plist. Nessuno dei due ha funzionato. – drekka

+0

Ho appena provato a rimuovere l'intestazione del prefisso. Non ha risolto il problema. Anche quando sono uscito dal simulatore. – drekka

+0

Penso che il problema stia creando impostazioni sbagliate. Sta ottenendo GCNO file che appaiono con 'GCC opzione -ftest-coverage', ha bisogno di costruire con' GCC opzione -fprofile-arcs' per ottenere i file GCDA. –

Problemi correlati