2010-07-11 58 views
5

我想在iPhone項目 上使用gcov,並遵循Apple的說明here,但它不起作用。iPhone:我如何使用gcov?

當我建立和去配置項目時,爲每個對象文件創建.gcda文件。 但是沒有執行的行被記錄到.gcda文件。 (CoverStory顯示所有覆蓋率爲0%)

我剛剛添加了一個簡單的類到模板項目中,如下所示。

@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 

我分配這個類,並在應用程序中調用FUNC1中:didFinishLaunchingWithOptions, 和我預期的SomeClass的覆蓋度爲顯示(50%左右)。

我使用的是OSX 10.6.4,iPhone SDK 4.0和Xcode 3.2.3。 需要更多配置?請指導。

更新2010/7/15:

我在link @tonclon嘗試這些提示給了我,但它並沒有工作。 在下面的描述是我試過的。

  1. Cocoa應用程序由GCC 4.0編譯 在 「可可」 應用項目設置,

    • 集GCC_INSTRUMENT_PROGRAM_FLOW_ARCS爲YES
    • 集GCC_GENERATE_TEST_COVERAGE_FILES爲YES
    • 設置的其他鏈接器標誌-lgcov
    • 將C/C++編譯器版本設置爲4.0

    它的工作,.gcda文件與預期的覆蓋率信息生成。 與SDK 4.0 iPhone項目,但是,我不能使用相同的配置,因爲 GCC 4.0不能在谷歌工具盒 使用自定義的gcov庫SDK 4.0(前塊)

  2. 編譯一些語法而不是在其他鏈接器標誌中設置-lgcov, 我試過custom gcov library included in google-toolbox-for-mac, 但生成的.gcda文件顯示覆蓋率爲0%。 (相同結果)

你能告訴我接下來該做什麼嗎?任何建議表示讚賞。

+0

你是否按照這裏給出的所有提示:http:// stackoverflow。com/questions/1385568/why-doesnt-gcov-report-any-lines-being-covered-by-my-unit-tests – tonklon 2010-07-12 12:45:08

+0

@tonclon非常感謝您提供的信息,我在鏈接中嘗試了這些提示,但它還沒有工作..我正在更新我的問題。 你能告訴我關於這個問題的更多提示嗎? – taichino 2010-07-14 15:22:37

+0

有些無益,但不再支持gcov;我們放棄了使用它。 – 2010-08-21 04:38:13

回答

0

幾件事情:

  1. 關閉前綴頭
  2. 確保你跳槽 「正確」

請在這裏簽出gcov的頁面(http://code.google .com/p/google-toolbox-for-mac/w/list),看看他們是否有幫助。我有gcov使用Xcode 3.2.5和iOS4.2。