2010-07-11 22 views
5

Je suis en train d'utiliser gcov sur iPhone projet et suivi les instructions d'Apple décrit here, mais il ne fonctionne pas.iPhone: Comment puis-je utiliser gcov?

Quand je construis et aller projet configuré, .gcda fichier est créé pour chaque fichier objet. Mais aucune ligne exécutée n'est enregistrée dans les fichiers .gcda. (Coverstory montre toutes les couvertures sont 0%)

Je viens d'ajouter une classe simple projet de modèle comme suit.

@interface SomeClass : NSObject 
- (void)func1:(BOOL)flag; 
@end 

@implementation SomeClass 
- (void)func1:(BOOL)flag { 
    if (flag) { 
    NSLog(@"flag is YES"); 
    } 
    else { 
    NSLog(@"flag is NO"); 
    } 
} 
@end 

I alloués cette classe et appeler func1 dans la demande: didFinishLaunchingWithOptions, et j'attendions à ce que la couverture de SomeClass est montré (50% environ).

J'utilise Mac OS X 10.6.4, iPhone SDK 4.0 et Xcode 3.2.3. D'autres configurations sont nécessaires? S'il vous plaît guider.

MISE A JOUR 15/07/2010:

J'ai essayé ces conseils dans le link @tonclon m'a donné, mais ça n'a pas encore. Dans la description suivante est ce que j'ai essayé.

  1. application Cocoa compilé par GCC 4.0 Dans les paramètres du projet d'application "Cocoa",

    • ensemble GCC_INSTRUMENT_PROGRAM_FLOW_ARCS à YES
    • ensemble GCC_GENERATE_TEST_COVERAGE_FILES à YES
    • établies Autre Linker Drapeau à -lgcov
    • ensemble C/C++ version du compilateur à 4,0

    Il a travaillé, .gcda fichiers ont été générés avec des informations de couverture comme prévu. Dans projet iPhone avec le SDK 4.0, cependant, je ne peux pas utiliser le même configuration, car gcc 4.0 ne peut pas compiler une syntaxe SDK 4.0 (ex blocs)

  2. en utilisant la bibliothèque gcov personnalisée dans google-boîte à outils Au lieu de définir -lgcov dans l'autre drapeau de liaison, j'ai essayé custom gcov library included in google-toolbox-for-mac, mais les fichiers générés .gcda montre la couverture est 0%. (Même résultat)

Pouvez-vous me dire ce que je devrais faire ensuite? Toutes les suggestions sont appréciées.

+0

Avez-vous suivi tous les conseils donnés ici: http: // stackoverflow.com/questions/1385568/why-doesnt-gcov-report-any-lines-being-couvert-par-mon-unité-tests – tonklon

+0

@tonclon Merci beaucoup pour vos informations, j'ai essayé ces conseils dans ce lien, mais il n'a pas encore fonctionné .. Je suis en train de mettre à jour ma question. Pouvez-vous s'il vous plaît me donner plus d'indices sur ce problème? – taichino

+0

Un peu inutile, mais gcov n'est plus supporté; nous avons renoncé à l'utiliser. –

Répondre

0

Deux ou trois choses:

  1. Éteignez les en-têtes de préfixe
  2. Assurez-vous d'arrêter de "correctement"

S'il vous plaît vérifier les pages Gcov ici (http://code.google .com/p/google-toolbox-pour-mac/w/liste) et voir si elles aident du tout. J'ai gcov de travail avec Xcode 3.2.5 et iOS4.2.