gpt4 book ai didi

c++ - 无法为 C++ 方法添加性能探针

转载 作者:IT老高 更新时间:2023-10-28 23:02:17 29 4
gpt4 key购买 nike

我正在尝试为我的库中的 C++ 方法添加 perf 探针,但我不断收到以下信息:

$ perf probe --exec=/path/to/file --add='my::Own::Method'
Semantic error :There is non-digit char in line number.

我列出了可用的功能,如下所示:

$ perf probe --funcs --exec=/path/to/file

并尝试了一些也包含的 C 函数。可以为这些添加探针。所以我尝试了错误的名称(例如 _ZN2my8Own16Method),perf probe 说它不存在。

有没有办法解决这个问题?

最佳答案

作为一种解决方法,您可以使用 objdump 获取方法地址,perf probe 将接受它。

  $ perf probe -x /path/file '0x643f30'
Added new event:
probe_libfile:abs_643f30 (on 0x643f30 in /path/file)

You can now use it in all perf tools, such as:

perf record -e probe_libfile:abs_643f30 -aR sleep 1

请注意,perf probe 需要从文件中偏移,并且 objdumpreadelf 在调整加载地址后返回地址。对于-pie可执行文件,加载地址为0,地址相同。
对于非 -pie 可执行文件,您可以通过查看 readelf -l/path/file 的输出并搜索偏移量 0x000000 来获取加载地址> 并查看它指向的 VirtAddr,然后从您从 objdump --symsreadelf --syms 。它通常是 0x400000

关于c++ - 无法为 C++ 方法添加性能探针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172446/

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