請注意,這是針對Mac OS X的,但我想我的問題可能存在於任何支持dtrace的操作系統上。使用單個提供程序名稱爲插件創建dtrace探針
我有一個應用程序,利用了很多插件。我在覈心應用程序和插件本身中都添加了userland探針。問題是,如果我在主應用程序正在使用的插件中使用相同的提供程序名稱,那麼當我嘗試創建可用探測列表時,這些探測不會顯示出來。看起來無論誰是第一個加載的代碼都會贏。
在我的主要應用我.D文件:
provider MyApp {
probe doSomething();
};
,在我的插件:
provider MyApp {
probe plugin_doSomethingPluginish();
};
更改供應商到別的東西,像MyAppPlugin的名稱,作品,但隨後的提供商列表將會變得瘋狂(MyAppPlugin1,MyAppPlugin2等)。我想認爲有一種方法可以在與主應用程序相同的提供程序名稱下添加新插件定義的探針,但是我沒有看到它或者它不存在。
那麼有沒有辦法做到這一點?如果沒有,即使模塊名稱已經是唯一的,爲每個插件提供不同的提供程序是否正常?看起來像這就是模塊名稱是...
這個問題是每個插件都是自己的項目。創建從插件項目到主應用項目的依賴是不可能的。 我想我可以爲主項目構建.h文件,然後將其複製到每個插件中,但是當做出更改時更新會很痛苦。 – MyztikJenz 2009-02-27 21:14:53