1

我无法使用 opreport 生成有用的调用图。结果都完全一致,每个函数都只被自己调用,然后只调用自己,有点令人困惑。

-------------------------------------------------------------------------------
  17875174 17875174      99.9325  99.9325    myProg.x               FTL::ReclaimWriteStateMachine()
17875173 17875173       9.1289   9.1289    myProg.x               FTL::ReclaimWriteStateMachine()
  17875174 17875174      49.9925  49.9925    myProg.x               FTL::ReclaimWriteStateMachine()
  17875173 35750347      49.9925  99.9850    myProg.x               FTL::ReclaimWriteStateMachine() [self]
-------------------------------------------------------------------------------
  14133500 14133500      100.000  100.000    myProg.x               Superblock::PageDataStore::ValidUnits() const
14133500 32008673       7.2180  16.3469    myProg.x               Superblock::PageDataStore::ValidUnits() const
  14133500 14133500      49.9739  49.9739    myProg.x               Superblock::PageDataStore::ValidUnits() const
  14133500 28267000      49.9739  99.9479    myProg.x               Superblock::PageDataStore::ValidUnits() const [self]
-------------------------------------------------------------------------------
e.t.c

我已阅读此文档,但无济于事。

我正在运行operf -g ./myProg.x以生成分析信息并opreport -lact 1查看调用图数据。

我也经常看到这个错误warning: dropping hyperspace sample at offset,但据我所知,这与我的调用图问题无关。


我已经检查了输出以进行分析,ls结果operf -g ls -la

-------------------------------------------------------------------------------
  1        1              4.1667   4.1667    ld-2.17.so               _dl_lookup_symbol_x
  1        2              4.1667   8.3333    ld-2.17.so               _dl_setup_hash
  1        3              4.1667  12.5000    ld-2.17.so               _dl_load_cache_lookup
  1        4              4.1667  16.6667    ld-2.17.so               access
  1        5              4.1667  20.8333    libc-2.17.so             brk
  1        6              4.1667  25.0000    libc-2.17.so             _itoa_word
  1        7              4.1667  29.1667    libc-2.17.so             __GI_strncmp
  1        8              4.1667  33.3333    libc-2.17.so             __xstat
  1        9              4.1667  37.5000    libc-2.17.so             __lxstat
  1        10             4.1667  41.6667    libc-2.17.so             mmap64
  1        11             4.1667  45.8333    libc-2.17.so             xdr_u_long
  1        12             4.1667  50.0000    libpthread-2.17.so       __pthread_initialize_minimal
  2        14             8.3333  58.3333    ld-2.17.so               mprotect
  2        16             8.3333  66.6667    libc-2.17.so             __sendto_nocancel
  3        19            12.5000  79.1667    libc-2.17.so             __getdents
  5        24            20.8333  100.000    ld-2.17.so               mmap
31       31            60.7843  60.7843    no-vmlinux               /no-vmlinux
  31       31            100.000  100.000    no-vmlinux               /no-vmlinux [self]
-------------------------------------------------------------------------------
3        34             5.8824  66.6667    ls                       /usr/bin/ls
  3        3             100.000  100.000    ls                       /usr/bin/ls [self]
-------------------------------------------------------------------------------
e.t.c

让我相信问题不在于我的安装oprofile,会尝试调整我构建可执行文件的方式

4

0 回答 0