Я ищу примеры кода о том, как использовать системный вызов Linux ptrace()
для отслеживания системных вызовов процесса и всех его дочерних, внучатых и т. д. процессов. Подобно поведению strace
, когда ему передается флаг ветвления -f
.
Я знаю об альтернативе изучения источников strace, но я прошу сначала чистый учебник в надежде получить более изолированное объяснение.
Я собираюсь использовать это для реализации быстрого универсального мемоайзера системных вызовов, похожего на https://github.com/nordlow/strace-memoize, но написанный на скомпилированном языке. Текущие примеры кода, которые я хочу расширить с помощью этой логики, — это ответвление ministrace по адресу https://github.com/nordlow/ministrace/blob/master/ministrace.c