Вопрос в значительной степени суммирует его. «dtrace» печатает ассоциативный массив «» имеет ровно один хит google, и аналогичные поиски одинаково бесполезны.Как вы печатаете ассоциативный массив в dtrace?
EDIT:
Если бы я должен был использовать агрегацию, я не знаю, что я по-прежнему иметь возможность удалять записи. Мое приложение требует, чтобы я быть в состоянии делать такие вещи, как:
file_descriptors[0] = "stdin"
file_descriptors[3] = "service.log"
...
...
file_descriptors[3] = 0
...
...
print_array(file_descriptors) # should print only those entries that have not been cleared.
Я знаю, что вы можете очистить всю агрегацию, но как насчет одной записи?
UPDATE:
Поскольку я делаю это в OS X и мое приложение для отслеживания всех файловых дескрипторов, которые были открыты с помощью определенного процесса, я был в состоянии иметь массив 256 пути, таким образом:
syscall::open*:entry
/execname == $1/
{
self->path = copyinstr(arg0);
}
syscall::open*:return
/execname == $1/
{
opened[arg0] = self->path;
}
syscall::close*:entry
/execname == $1/
{
opened[arg0] = 0;
}
tick-10sec
{
printf(" 0: %s\n", opened[0]);
}
The above probe repeated 255 more times...
Это отстой. Мне бы очень хотелось, чтобы у меня было что-то лучше.
Можете ли вы очистить одну запись в агрегации? – Sniggerfardimungus
О, я сейчас вижу, что вы делаете. Агрегации - это не то, что вам нужно, если вы не собираете кучу данных за прогон для этого ключа. Сожалею; Я неправильно понял. – Don
Нет проблем. Проблема в том, что у меня крутой ореол, и я мог бы быть более ясным в своем посте ... – Sniggerfardimungus