2010-12-19 26 views
1

我有一個運行在MacOS 10.6上的C++單線程程序。這是獲取呼叫計數,但不是時間信息。gprof在MacOS 10.6上用C++程序有通話數據但沒有定時數據---爲什麼?

下面是輸出的一個例子:

  0.00  0.00  9/31377020  __ZNSaISsEC1Ev [454] 
      0.00  0.00  9/31377020  __ZNSaISsED1Ev [314] 
      0.00  0.00  9/31377020  __Z12banner_stampRSt14basic_ofstreamIcSt11char_traitsIcEE [3960] 
      0.00  0.00  9/31377020  __ZStorSt13_Ios_OpenmodeS_ [14555] 
      0.00  0.00  9/31377020  __ZNSaIP13ifstream_lineEC1Ev [497] 
      0.00  0.00  9/31377020  __ZNSaIP13ifstream_lineED1Ev [321] 
      0.00  0.00  9/31377020  __ZNSt6vectorISsSaISsEE5beginEv [511] 
      0.00  0.00  9/31377020  __ZNSt6vectorIP13ifstream_lineSaIS1_EEC1ERKS2_ [510] 
      0.00  0.00  9/31377020  __ZNSt6vectorISsSaISsEEC1ERKS0_ [512] 
      0.00  0.00  9/31377020  __ZNSt6vectorIP13ifstream_lineSaIS1_EED1Ev [404] 
      0.00  0.00  9/31377020  __ZNSt6vectorISsSaISsEED1Ev [405] 
      0.00  0.00  144/31377020  __ZNK9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEdeEv [9475] 
      0.00  0.00  144/31377020  __ZN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEppEi [327] 
      0.00  0.00  144/31377020  __ZSt4findIN9__gnu_cxx17__normal_iteratorIPP13ifstream_lineSt6vectorIS3_SaIS3_EEEES3_ET_S9_S9_RKT0_ [296] 
      0.00  0.00  144/31377020  __ZNSt6vectorIP13ifstream_lineSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPS1_S3_EE [251] 
      0.00  0.00  144/31377020  __ZNSt6vectorIP13ifstream_lineSaIS1_EE9push_backERKS1_ [316] 
      0.00  0.00  144/31377020  __ZNSt6vectorISsSaISsEE9push_backERKSs [317] 
      0.00  0.00  153/31377020  __ZNSt6vectorISsSaISsEE3endEv [312] 
      0.00  0.00  153/31377020  __ZN9__gnu_cxxneIPSsSt6vectorISsSaISsEEEEbRKNS_17__normal_iteratorIT_T0_EESA_ [294] 
      0.00  0.00  153/31377020  __ZN13ifstream_lineC1EPKc [4844] 
      0.00  0.00  153/31377020  __ZN13ifstream_lineD0Ev [4845] 
      0.00  0.00  162/31377020  __ZN16feature_recorder13fname_counterEiSs [229] 
      0.00  0.00 442461/31377020  __ZNSt6vectorIP13ifstream_lineSaIS1_EEixEm [12736] 
      0.00  0.00 442479/31377020  __ZNKSt6vectorIP13ifstream_lineSaIS1_EE4sizeEv [10022] 
      0.00  0.00 442605/31377020  __ZNSt6vectorIP13ifstream_lineSaIS1_EE5beginEv [113] 
      0.00  0.00 442605/31377020  __ZN13ifstream_line8nextlineEv [112] 
      0.00  0.00 442704/31377020  __ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ [14535] 
      0.00  0.00 6816415/31377020  __ZN9__gnu_cxx17__normal_iteratorIPP13ifstream_lineSt6vectorIS2_SaIS2_EEEppEi [92] 
      0.00  0.00 7258876/31377020  __ZN9__gnu_cxxneIPP13ifstream_lineSt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_ [87] 
      0.00  0.00 7259020/31377020  __ZNSt6vectorIP13ifstream_lineSaIS1_EE3endEv [91] 
      0.00  0.00 7828118/31377020  __ZNK9__gnu_cxx17__normal_iteratorIPP13ifstream_lineSt6vectorIS2_SaIS2_EEEdeEv [9445] [86]  
    0.0 0.00  0.00 31377020   __ZN16feature_recorder9recombineEv [86] 
      0.00  0.00  9/57   __ZN20feature_recorder_set13recombine_allEv [384] 

很奇怪,是吧?通話時間爲31377020,但記錄時間爲0。

有人知道發生了什麼事嗎?

+0

vy32,你知道嗎,gprof工作10.5嗎? – osgx 2010-12-19 02:23:33

+0

There http://stackoverflow.com/questions/1101545/problem-with-gprof-on-os-x-program-is-not-of-the-host-architecture是一條評論「更新:看起來好像gprof現在正在使用最新的開發工具在Mac OS X 10.6(Snow Leopard)上工作。「你使用最新的DevTools嗎? – osgx 2010-12-19 02:25:06

+0

是的,我有最新的devtools。謝謝。 – vy32 2010-12-22 11:11:00

回答

2

前段時間我聽說gprof在Snow Leopard上無法正常工作,症狀與您所描述的一樣。如果你找不到解決方案,那麼你可以嘗試一下其他的分析器,比如shark

+0

我試過了鯊魚和其他開發工具。泄漏是一種魅力,但其他人卻變得毫無價值。 – vy32 2010-12-19 02:09:38

+0

vy32,'鯊魚'相當強大 – osgx 2010-12-19 02:22:55

+0

它可能是,但它沒有給我一個有用的調用樹gprof的方式。是的,它可以讓你分析一個正在運行的程序。但它是通過抽樣來完成的,而不是通過直接呼叫跟蹤。 – vy32 2010-12-19 02:39:26

相關問題