Можно ли использовать DTrace для просмотра аргументов, переданных strncpy? - PullRequest
3 голосов
/ 11 июня 2009

Я знаю, что мог бы написать interposer для наблюдения за аргументами, передаваемыми в библиотечный вызов strncpy, но кажется, что это должно быть легко сделать с DTrace.

1 Ответ

5 голосов
/ 11 июня 2009

Вот рабочий вариант (только для Mac):


#!/usr/sbin/dtrace -s
pid$target::strncpy:entry
{
    printf( "%s( %X, %s, %lld )\n",
        probefunc,
        arg0,
        copyinstr(arg1),
        arg2 );
}

copyinstr требуется, поскольку строка поступает из пользовательского пространства в ядро.

...