Если мне нужно получить значения некоторых регистров с помощью ptrace, например ebx и ecx, то я получу лучшую производительность:
ecx = ptrace(PTRACE_PEEKUSER, child, 4 *ECX, NULL);
ebx = ptrace(PTRACE_PEEKUSER, child, 4 *EBX, NULL);
Или получу все регистры с PTRACE_GETREGS
ptrace(PTRACE_GETREGS, child, NULL, ®s);
printf("ebx = %ld ecx = %ld\n",regs.ebx, regs.ecx);
Как это реализовать? PTRACE_GETREGS
реализован как al oop на PTRACE_PEEKUSER
, поэтому, если O не нужны все регистры, лучше всего использовать PTRACE_PEEKUSER
в качестве нужного мне количества регистров?
Зависит ли производительность по архитектуре (x86 / Arm)?