1

Я пытаюсь научиться некоторым трюкам, используя "trace" (или dtrace, или strace, или truss), поэтому я использую команду:

trace -d [random PID]

Я получаю следующие сообщения об ошибках:

ошибка трассировки: ошибка средства трассировки, KERN_KDREMOVE: в доступе отказано

или же

Не удалось открыть файл описания кода [PID]

Я не уверен насчет флага и, вероятно, отличается в других ОС (я использую MacOS с ядром Darwin), но основные функции должны быть такими же.

Может ли кто-нибудь предоставить краткое руководство по этому инструменту?

1 ответ1

2

Вы хотите связать уже запущенный процесс? По крайней мере в Linux (с правами root) вы можете попробовать следующее, чтобы присоединиться к процессу приглашения оболочки Bash.

# strace -p [PID of a process]
Process 2055 attached
read(0,

И это ждет там. Опция -p - это та, которая присоединяется к запущенному процессу. С опцией -d вы можете заставить strace отображать отладочную информацию от себя.

Смотрите руководство по strace (1),

" -d Показать некоторые отладочные данные самого strace для стандартной ошибки. "

Без разрешения root вы получите похожие ошибки, подобные следующим на Ubuntu 13.10:

$ strace -p [random PID]
strace: attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Could not attach to process.  If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .