В опакеченом bpftrace не работают пробы BEGIN и END: $ sudo bpftrace -e 'BEGIN {}' Attaching 1 probe... ERROR: Could not resolve symbol: /proc/self/exe:BEGIN_trigger $ sudo bpftrace -e 'END {}' Attaching 1 probe... ^CERROR: Could not resolve symbol: /proc/self/exe:END_trigger Это происходит из-за того, что бинарник bpftrace пострипан: $ nm /usr/bin/bpftrace nm: /usr/bin/bpftrace: no symbols а bpftrace для реализации BEGIN и END трейсит свои же символы (см. https://github.com/iovisor/bpftrace/issues/954#issuecomment-573342522).
Спасибо, что разобрались в чем проблема. Подумаю как это лучше решить. Может есть варианты кроме как не стрипать.
Можно оставить только эти два символа: strip --keep-symbol=BEGIN_trigger --keep-symbol=END_trigger ... Если это просто, конечно. В какой момент strip происходит? Это cmake делает при сборке или это альтовая сборочница стрипает?
Опции в strip передать нельзя. Думаю, хватит %brp_strip_debug %_bindir/bpftrace Разница несколько мегабайт, на мой взгляд приемлема. Хочу еще обновить версию, что в общем-то просто. Но обнаружил проблему с libbpf с которой надо разобраться.
(Ответ для aspsk на комментарий #2) > В какой момент strip происходит? Это cmake делает > при сборке или это альтовая сборочница стрипает? Это делает brp-debuginfo скрипт во время rpmbuild после %install. ps. Обновить хочу до v0.13.1.
bpftrace-0.13.1-alt1 -> sisyphus: Fri Jan 21 2022 Vitaly Chikunov <vt@altlinux> 0.13.1-alt1 - Updated to v0.13.1 (2021-12-21). - Do not strip BEGIN/END triggers from bpftrace (closes: #41750).