Зонд EBPF для скомпилированной встроенной функции
Я хотел бы создать программу EBPF для Golang, которая записывает, когда функция вводится и возвращается.
Некоторые проблемы у меня есть:
- A. Функции встроены.
- B. Закрытие анонимно.
- C. Чтение структур Голанга.
Вопросы:
А.
В моем случае невозможно предотвратить встраивание функции с помощью go build -gcflags '-l
.
Если бы я мог идентифицировать инструкцию встроенной функции в двоичном файле, я бы мог поместить на нее зонд (вместо "поместить зонд в функцию X", могу ли я сказать EBPF "поместить зонд в команду X"?).
Б.
Могу ли я сделать то же самое с анонимным закрытием?
С.
Как читать структуры Golang в программе EBPF C?
Я хочу извлечь скалярные значения, принадлежащие иерархии структур. В примерах я могу найти все пробные функции, которые принимают в качестве аргументов скаляры, а не структуры.
связанные с
- невозможность прикрепить eBPF `kretprobes` к`napi_poll()`с помощью инструментов скрытой копии
- http://www.brendangregg.com/blog/2017-01-31/golang-bcc-bpf-function-tracing.html
Спасибо.