From: Sergey Matveev Date: Wed, 29 Jan 2025 19:27:00 +0000 (+0300) Subject: DTrace помогает на работе X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d4f65ecfd845dea39045336c7cd6aa3c70215482;p=stargrave-blog.git DTrace помогает на работе https://www.brendangregg.com/blog/2011-02-11/dtrace-pid-provider-arguments.html https://www.brendangregg.com/blog/2011-02-14/dtrace-pid-provider-return.html Есть задача по трассировке всех вызовов функций в Си программе. DTrace-овский "pid" провайдер добавляет пробы при входе и выходе из функции, даже которая была static. pid$target::mylib*:entry {} pid$target::mylib*:return {} Будет выводить факты вызовов всех функций с префиксом mylib в имени. И аргументы функций доступны через arg0, arg1, .... Без изменения программы можно чуть ли не полностью трасировать всё что в ней происходит. Хотя мне и пришлось добавить свои пробы дополнительные, которые где-то в середине функций имеются. Можно и Си-шные структуры тоже разбирать прямо внутри DTrace. ---