Notez que ceci est pour Mac OS X, bien que j'imagine que mon problème existe sur n'importe quel système d'exploitation compatible dtrace.Création de sondes dtrace pour les plug-ins en utilisant le nom du fournisseur unique
J'ai une application qui utilise beaucoup de plugins. J'y ajoute des sondes d'utilisateur, à la fois dans l'application principale et dans les plugins eux-mêmes. Le problème est que si j'utilise le même nom de fournisseur dans les plugins que l'application principale utilise, ces sondes n'apparaissent pas lorsque j'essaie de créer une liste de sondes disponibles. Il semble que le code qui charge le premier gagne.
mon fichier .d dans mon application principale:
provider MyApp {
probe doSomething();
};
et dans mon plugin:
provider MyApp {
probe plugin_doSomethingPluginish();
};
Modification du nom du fournisseur à quelque chose d'autre, comme MyAppPlugin, fonctionne, mais la liste des fournisseurs va devenir fou (MyAppPlugin1, MyAppPlugin2, etc). Je voudrais penser qu'il existe un moyen d'ajouter de nouvelles sondes définies par plugin sous le même nom de fournisseur que l'application principale, mais je ne le vois pas ou il n'existe pas.
Alors, y a-t-il un moyen de le faire? Et sinon, est-il normal d'avoir un fournisseur différent pour chaque plugin même si le nom du module est déjà unique? On dirait que c'est à ça que sert le nom du module ...
Le problème avec ceci est que chaque plugin est son propre projet. La création de la dépendance des projets de plug-in au projet de l'application principale n'est pas possible. Je suppose que je pourrais construire le fichier .h pour le projet principal, puis le copier dans chaque plugin, mais ce serait difficile à mettre à jour quand un changement est fait. – MyztikJenz
vrai, à tout le moins si vous définissez différents fournisseurs, vous pouvez conserver le même préfixe pour différents fournisseurs et ainsi vous pouvez faire dtrace -l -n MyApp * ::: entrée, etc et ainsi tous les fournisseurs correspondant à ce préfixe être listé –