gpt4 book ai didi

linux - 性能调用图中的源代码行号?

转载 作者:IT王子 更新时间:2023-10-29 01:15:33 24 4
gpt4 key购买 nike

我正在使用 perf record -a --call-graph dwarf -p XXX sleep 1 来记录一些函数调用,然后使用 perf report 查看该数据,但是如果我还可以看到源代码行号以准确了解每个函数调用的位置,那将非常有帮助。例如:

-   4.18%  testbinary  testbinary                [.] malloc 
- malloc
- 99.57% operator new(unsigned long)
+ 7.28% MyFunction()

我想知道 MyFunction() 中的那些 new operators 被调用的确切位置(不用我通过查看整个函数源代码来猜测)

P.S.:二进制文件是用 -m64 -O2 -ggdb3

编译的

最佳答案

我不小心发现它松散地记录在 perf script 中,但它也适用于其他命令:-F 选项接受 srcline。所以你可以执行 -F+srcline 将行号添加到现有列。

示例:perf report -g fractal -F+period,srcline

Samples: 22K of event 'cycles:u', Event count (approx.): 13031011295
Children Self Period Source:Line Command Shared Object Symbol
+ 99.98% 38.76% 5051224000 test.cpp:7 a a [.] fib
+ 96.42% 0.00% 0 _start+94372992700461 a a [.] _start
+ 96.42% 0.00% 0 __libc_start_main+140304673091826 a libc-2.29.so [.] __libc_start_main
+ 96.42% 0.00% 0 test.cpp:13 a a [.] main
+ 21.47% 21.47% 2797741850 test.cpp:8 a a [.] fib
+ 16.69% 16.69% 2174469736 test.cpp:4 a a [.] fib
+ 16.37% 16.36% 2132462705 test.cpp:6 a a [.] fib
+ 6.69% 6.69% 871128215 test.cpp:5 a a [.] fib

关于linux - 性能调用图中的源代码行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44865551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com