Я пишу программу для отслеживания каждого системного вызова, вызываемого дочерним процессом, и определения точного использования памяти (исключая разделение памяти).
вот мой план.
let childпроцесс, отслеживаемый родительским процессом,
, если дочерний процесс выполняет системные вызовы, родительский процесс получит SIGTRAP,
, затем получит идентификатор системного вызова с помощью ptrace (PTRACE_PEEKUSER, child_pid, 4 * ORIG_EAX, NULL).
когда идентификатор равен SYS_brk, SYS_sbrk, SYS_mmap2, SYS_mmap, SYS_mremap, SYS_munmap,
я могу получить параметры вызова и рассчитать объем использования памяти.
но меня беспокоит, что
Я не уверен, как рассчитать.
SYS_mmap2 имеет более 6 параметров, как мне его получить?