Можно ли использовать DTrace для просмотра аргументов, переданных в strncpy?

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


person brianegge    schedule 11.06.2009    source источник


Ответы (1)


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


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

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

person Nikolai Fetissov    schedule 11.06.2009