kprobe vs uprobe системный вызов

Я хочу написать системный вызов с использованием Utrace. Я понял, что проект Utrace был заброшен, но часть его кода используется в kprobe и uprobe.

Я не очень хорошо понял, как они работают. Особенно uprobe Можете ли вы объяснить, какая разница между ними? И можно ли использовать uprobe без написания модуля, чтобы проверить, каковы фактические параметры для системного вызова?

Спасибо

1 ответ

Решение

Kprobe создает и управляет точками проверки в коде ядра, то есть вы хотите проверить некоторую функцию ядра, скажем, do_sys_open(). Вам нужно взглянуть на https://www.kernel.org/doc/Documentation/trace/kprobetrace.txt, чтобы получить некоторое использование kprobe.

Uprobe создает и управляет точками проверки в пользовательских приложениях, то есть вы хотите проверить некоторую функцию пространства пользователя, но проверка выполняется в пространстве ядра от имени проверяемого процесса. Вам нужно взглянуть на https://www.kernel.org/doc/Documentation/trace/uprobetracer.txt, чтобы получить базовое использование uprobe, чтобы увидеть, к чему он стремится.

Другие вопросы по тегам