Трасування системних викликів


1

Я намагаюся дізнатися деякі трюки, використовуючи "trace" (або dtrace або strace або truss), тому я використовую команду:

trace -d [random PID]

Я отримую такі повідомлення про помилку:

помилка трасування: помилка засобу трасування, KERN_KDREMOVE: заборонено дозвіл

або

Не вдалося відкрити файл опису коду [PID]

Я не впевнений у цьому прапорі і, ймовірно, відрізняється в інших ОС (я використовую MacOS з ядром Дарвіна), але головні функції повинні бути однаковими.

Чи може хтось надати короткий підручник з цього інструменту?

Відповіді:


2

Ти хочеш strace вже запущений процес? Принаймні на Linux (з кореневими дозволами), ви можете спробувати наступне, щоб прикріпити до Bash оболонки підказка процесу.

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

І він там чекає. Опція -p є тим, що приєднується до запущеного процесу. З опцією -d , ти можеш отримати strace відображати інформацію про налагодження від себе.

Дивіться інструкцію strace (1),

" -d Покажіть деякий вихід налагодження самого strace на стандартну помилку. "

Без кореневих дозволів ви отримаєте подібні помилки, такі як на 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.