Я хочу использовать Dtrace для получения значения члена структуры в пользовательской области, а не в ядре.
Код C выглядит следующим образом:
typedef struct
{
int a;
}st_A;
void fun1(st_A *p)
{
......
}
Сценарий Dtrace выглядит следующим образом:
#!/usr/sbin/dtrace -qs
pid$1::fun1:entry
{
printf("%d\n", *(int*)copyin(arg0, 4));
}
Лично я считаю этот скрипт Dtrace очень корявым. Если структура содержит много элементов, мне нужно вычислить смещение каждого члена. Если в структуре есть массив указателей, то ситуация ужасна!
Итак, есть ли простой и изящный способ получить доступ к membesr в структуре в пользовательском процессе? Спасибо большое!