Описание проблемы:
Листинг: socket_trace.stp
probe kernel.function("*@net/socket.c").call{
printf("%s -> %s\n", thread_indent(1), ppfunc())
}
probe kernel.function("*@net/socket.c").return {
printf("%s <- %s\n", thread_indent(-1), ppfunc())
}
Измените листинг, удалив модификатор .call из первого зонда. Обратите внимание, что запись функции и возврат функции теперь больше не совпадают. Это связано с тем, что теперь первый зонд будет соответствовать как обычной записи функции, так и встроенным функциям. Попробуйте вернуть модификатор .call и добавить еще один пробник только для пробы. .call и .return вывод потока с отступом?
Я понятия не имею, как показать, что вызов встроенной функции происходит (если есть) в обработчике возврата функции? Кто-нибудь может предложить руку? Заранее спасибо.