Обратите внимание, что это для Mac OS X, хотя я думаю, что моя проблема будет существовать на любой операционной системе, поддерживающей dtrace.Создание пробников dtrace для плагинов с использованием имени одного поставщика
У меня есть приложение, которое использует множество плагинов. Я добавляю к нему пользовательские пробники как в основном приложении, так и в самих плагинах. Проблема в том, что если я использую то же имя провайдера в плагинах, которые использует основное приложение, эти зонды не появляются, когда я пытаюсь создать список доступных пробников. Похоже, что тот, кто первым загружает первый выигрыш.
мой .d файл в моем главном приложении:
provider MyApp {
probe doSomething();
};
и в моем плагине:
provider MyApp {
probe plugin_doSomethingPluginish();
};
Изменение имени поставщика к чему-то еще, например, MyAppPlugin, работает, но потом список провайдеров будет безумным (MyAppPlugin1, MyAppPlugin2 и т. д.). Я хотел бы подумать, что есть способ добавить новые зонды с плагинами под тем же именем поставщика, что и основное приложение, но я либо не вижу его, либо его не существует.
Так есть способ сделать это? А если нет, нормально ли иметь другой провайдер для каждого плагина, хотя имя модуля уже уникально? Похоже, это то, что имя модуля для ...
Проблема с этим каждый плагин - это собственный проект. Создание зависимости от проектов плагинов к проекту основного приложения невозможно. Я полагаю, что я мог бы создать файл .h для основного проекта, а затем скопировать его в каждый плагин, но это было бы болью для обновления при внесении изменений. – MyztikJenz
true, по крайней мере, если вы определяете разных поставщиков, вы можете сохранить один и тот же префикс для разных поставщиков, и таким образом вы можете сделать dtrace -l -n MyApp * ::: entry и т. Д., И таким образом все поставщики, соответствующие этому префиксу, будут быть перечисленным –