Как увидеть вызовы чтения и записи (включая скрытые символы, такие как \ n) с помощью dtrace - PullRequest
4 голосов
/ 31 марта 2020

Я новичок в dtrace, ранее имел возможность Linux strace, отслеживающего все, что мне нужно по умолчанию. Как настроить отслеживание вызовов чтения и записи из работающей C программы для работы на dtrace?

Я видел ответ здесь: dtrace: не перехватывает вызов sys для записи Однако это не помогает мне полностью.

Я добавил оператор printf из https://docs.oracle.com/cd/E18752_01/html/819-5488/gcgkk.html с текущим кодом: sudo dtrace -n 'syscall::read:entry, syscall::write:entry/pid==10325/{printf("%s",copyinstr(arg1)); }', где pid - это процесс, который я хочу для отслеживания.

Однако, это печатает его в виде строки, а не в байтовой форме. Есть ли способ просмотреть все содержимое, включая скрытые символы, такие как \ r и \ n? Это то, как это делается в strace.

Кроме того, запись: запись, кажется, обрезает вывод после примерно 150-200 символов, есть ли способ отключить или увеличить этот предел?

...