Системный вызов, отслеживающий скрипт Python с помощью dtruss в Mac OSX
Я заметил, что что-то не так с dtruss
при применении к скрипту Python. Затем я обнаружил, что даже самая простая программа на Python, например
print ("HELLO")
не прослеживается должным образом под dtruss
на MacOS. Я не могу найтиwrite
syscall, однако на машине Linux он успешно отслеживается (с помощью strace
). Ниже я прикрепляю след, произведенныйdtruss
. Нужно ли мне передавать какие-то дополнительные параметры или, может быть, использовать какой-то другой инструмент для трассировки Python? Как Python может "тайно" выполнять системные вызовы, не будучи захваченнымdtruss
?
$ sudo dtruss -f python3 hello.py
PID/THRD SYSCALL(args) = return
98717/0xb7bbdd: madvise(0x10B712000, 0x3000, 0x5) = 0 0
98717/0xb7bbdd: open("/dev/dtracehelper\0", 0x2, 0x7FFF546FB850) = 3 0
98717/0xb7bbdd: ioctl(0x3, 0x80086804, 0x7FFF546FB7D8) = 0 0
98717/0xb7bbdd: close(0x3) = 0 0
98717/0xb7bbdd: thread_selfid(0x3, 0x80086804, 0x7FFF546FB7D8) = 12041181 0
98717/0xb7bbdd: bsdthread_register(0x7FFF99AD8080, 0x7FFF99AD8070, 0x2000) = 1073741919 0
98717/0xb7bbdd: ulock_wake(0x1, 0x7FFF546FAE2C, 0x0) = -1 Err#2
98717/0xb7bbdd: issetugid(0x1, 0x7FFF546FAE2C, 0x0) = 0 0
98717/0xb7bbdd: mprotect(0x10B76D000, 0x88, 0x1) = 0 0
... (more mprotect)
98717/0xb7bbdd: getpid(0x10B76D000, 0x88, 0x1) = 98717 0
98717/0xb7bbdd: stat64("/AppleInternal/XBS/.isChrooted\0", 0x7FFF546FACE8, 0x1) = -1 Err#2
98717/0xb7bbdd: stat64("/AppleInternal\0", 0x7FFF546FAD80, 0x1) = -1 Err#2
98717/0xb7bbdd: csops(0x1819D, 0x7, 0x7FFF546FA810) = -1 Err#22
98717/0xb7bbdd: sysctl([CTL_KERN, 14, 1, 98717, 0, 0] (4), 0x7FFF546FA968, 0x7FFF546FA960, 0x0, 0x0) = 0 0
98717/0xb7bbdd: ulock_wake(0x1, 0x7FFF546FAD90, 0x0) = -1 Err#2
98717/0xb7bbdd: csops(0x1819D, 0x7, 0x7FFF546FA0F0) = -1 Err#22
98717/0xb7bbdd: getuid(0x1819D, 0x7, 0x7FFF546FA0F0) = 0 0
98717/0xb7bbdd: getuid(0x1819D, 0x7, 0x7FFF546FA0F0) = 0 0
98717/0xb7bbdd: stat64("/\0", 0x7FFF546FAD20, 0x7FFF546FA0F0) = 0 0
98717/0xb7bbdd: getattrlist("/usr\0", 0x7FFF9997CB04, 0x7FFF546FC630) = 0 0
98717/0xb7bbdd: getattrlist("/usr/local\0", 0x7FFF9997CB04, 0x7FFF546FC630) = 0 0
98717/0xb7bbdd: getattrlist("/usr/local/bin\0", 0x7FFF9997CB04, 0x7FFF546FC630) = 0 0