linux — не могу добавить perf датчик для методов C ++

Я пытаюсь добавить perf probe для метода C ++ в моей библиотеке, но я продолжаю получать следующее:

$ 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 говорит, что не существует.

Есть ли способ обойти эту проблему?

13

Решение

В качестве обходного пути вы можете получить адрес метода с помощью 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
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]