2011-01-13 7 views
8

Ich versuche, meinen Code mit dem iPhone-Simulator zu profilieren. Ich habe aktiviert Generiere Test Coverage Datei und Instrument Programmablauf und hinzugefügt -lgcov zu den Linker-Flags. Nach allem, was ich gelesen habe, sollte das alles sein, was ich in Bezug auf die Einrichtung tun muss.iPhone: Simulator kann nicht erstellt werden .gcda Profiling-Dateien

Update: generieren Test Coverage Datei löst die -ftest-Abdeckung Flagge und Instrument Programmablauf löst die -fprofile-Bögen Flagge. Ich habe die Build-Protokolle überprüft und sie werden beim Kompilieren eingestellt.

Ausführen des Programms kann ich sehen, die .gcno Dateien an der Seite erscheinen, den .o kompilierte Code in der Build/.build/Debug-iphonesimulator/.build/Objects-normal/i386-Verzeichnis. Wenn ich die App im Simulator laufe bekomme ich keine * .gcda Dateien die erscheinen.

Mein Verständnis ist, dass diese Dateien die Daten aus der Instrumentierung enthalten. Aber ich kann sie nirgendwo auf dem Computer finden.

Ich weiß, dass sie produziert werden können und neben der * .gcno Dateien erscheinen, weil ich ein altes trashed buil-Verzeichnis habe, das sie hat. Ich kann einfach nicht herausfinden, was ich tun muss, damit sie erscheinen und den Lauf aufzeichnen.

Jede Hilfe wird geschätzt.

+0

erwähnt Sind Sie zufällig versuchen, "Engpässe" zu finden und loszuwerden? Wenn dies der Fall ist, [betrachten Sie das zufällige Anhalten] (http://stackoverflow.com/questions/926266/performance-optimization-strategies-of-last-resort/927773#927773). –

+0

Nein. Mein Hauptinteresse besteht darin zu sehen, wie viel von der Anwendung durch Komponententests abgedeckt wird und mir hilft, Bereiche zu bestimmen, denen ich weitere Tests hinzufügen möchte. Von einem Java/agilen Hintergrund kommend, ist Unit Testing etwas, was ich gerne mache :) – drekka

Antwort

1

Ich hoffe, das link Sie würde irgendeine Idee. Exploring the Link fand ich

Die .gcno-Datei generiert wird, wenn die Quelldatei mit der GCC -ftest-Berichterstattung Option kompiliert wird. Es enthält Informationen zum Rekonstruieren der grundlegenden Blockgraphen und Zuweisen von Quellzeilen zu Blöcken.

Die .gcda-Datei generiert wird, wenn eine Programm enthalten Objektdateien mit der GCC -fprofile-Bögen Option eingebaut ist ausgeführt. Eine separate .gcda-Datei wird mit dieser Option für jede kompilierte Objektdatei mit erstellt. Es enthält Transition counts, und einige Zusammenfassung Informationen.

So können Sie mit einigen falschen Einstellungen bauen. Die Informationen sind auf http://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html#Gcov-Data-Files

1

This link kann die Antwort haben, im Grunde werden GCDA-Dateien nicht generiert, bis Ihre App ordnungsgemäß beendet wird. Es gibt zwei mögliche Lösungen:

  • vollständig den Simulator
  • diese zu Ihrem plist hinzufügen beenden (aber nicht für Release-Builds):

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

Danke. Ich habe beide Lösungen ausprobiert. Den Simulator vollständig herunterfahren und dann diese Zeile zum Plist hinzufügen. Keine funktionierte. – drekka

+0

Habe gerade versucht, den Präfix-Header zu entfernen. Das Problem wurde nicht behoben. Auch als ich den Simulator verließ. – drekka

+0

Ich denke, das Problem baut mit falschen Einstellungen auf. Er bekommt gcno-Dateien, die mit 'GCC -test-coverage' erscheinen, er muss mit' GCC -fprofile-arcs' bauen, um die gcda-Dateien zu erhalten. –