gprof на MacOS 10.6 с программой c ++ имеет данные вызова, но нет данных времени, почему?

У меня есть однопоточная программа на C ++, работающая на MacOS 10.6. Он получает счетчик звонков, но не информацию о времени.

Вот пример вывода:

            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]

Довольно странно, да? 31 377 020 звонков прошло, но зарегистрировано 0 раз.

Кто-нибудь знает, что происходит?


person vy32    schedule 19.12.2010    source источник
comment
vy32, а знаете, gprof работает на 10.5?   -  person osgx    schedule 19.12.2010
comment
Там stackoverflow.com/questions/1101545/ - комментарий Обновление: похоже, что gprof теперь работает с Mac OS X 10.6 (Snow Leopard), используя последнюю версию Инструменты разработчика. Вы используете последнюю версию DevTools?   -  person osgx    schedule 19.12.2010
comment
да, у меня есть последние инструменты разработчика. Благодарю.   -  person vy32    schedule 22.12.2010


Ответы (1)


Некоторое время назад я слышал, что gprof не работает правильно на Snow Leopard, и симптомы были такими, как вы описали. Если вы не найдете решения, вы можете попробовать какой-нибудь другой профилировщик, например shark.

person Öö Tiib    schedule 19.12.2010
comment
Я пробовал Shark и другие инструменты разработчика. Утечки были прелестью, но другие оказались бесполезными. - person vy32; 19.12.2010
comment
vy32, shark довольно мощный - person osgx; 19.12.2010
comment
Может быть, но это не дало мне полезного дерева вызовов, как gprof. Да, это позволяет вам профилировать работающую программу. Но он делает это путем выборки, а не путем прямой трассировки вызовов. - person vy32; 19.12.2010
comment
@ vy32: к сведению и К вашему сведению. - person Mike Dunlavey; 20.12.2010