2009-02-27 10 views
0

Bu sorunun Mac OS X için olduğunu unutmayın, ancak sorunumun dtrace özellikli bir OS'de var olacağını düşünün.Tek sağlayıcı adı kullanılarak eklentiler için dtrace probları oluşturma

Çok fazla eklenti kullanan bir uygulamanız var. Hem temel uygulamada hem de eklentilerin kendisinde kullanıcı sondaları ekliyorum. Sorun şu ki, ana uygulamanın kullandığı eklentilerde aynı sağlayıcı adını kullanırsam, mevcut sondaların bir listesini oluşturmaya çalıştığımda bu problar görünmüyor. İlk yüklenen kodun kim tarafından kazanılacağı anlaşılıyor.

provider MyApp { 
    probe doSomething(); 
}; 

ve benim eklenti:

benim ana app benim .d dosya

provider MyApp { 
    probe plugin_doSomethingPluginish(); 
}; 

MyAppPlugin gibi başka bir şey için sağlayıcının adını değiştirme, çalışır, ancak daha sonra Sağlayıcıların listesi deli olacak (MyAppPlugin1, MyAppPlugin2, vb). Ben aynı uygulama adı altında yeni eklenti tanımlanmış probları eklemek için bir yol olduğunu düşünmek isterim, ama ben onu görmüyorum ya da yok.

Bunu yapmanın bir yolu var mı? Ve değilse, modül adı zaten benzersiz olsa bile, her eklenti için farklı bir sağlayıcı olması normal midir? Modül adı için bu gibi görünüyor ...

cevap

0

Sadece bir provider.d dosyasını tanımlamak ve sonra bu problardan herhangi birini kullanarak .h dosyasını her bir sınıfa içe aktarmanız gerekir, çoklu yapmak için hiçbir neden yoktur .d dosyalarının her biri aynı sağlayıcıyı listeliyor. Bu konuda DTrace dokümantasyonunu kontrol ettim ve bu konuda bir şey görmüyorum, ama evet, aynı sağlayıcıyı tanımlayan birden çok .d dosyasının bir çeşit çakışma ya da bu tür bir yükleme sondası listesi oluşturduğunu varsayalım Sağlayıcı, prob listesini yeniden tanımlamak ve muhtemelen sizin tasarladığınız şekilde genişletmemek gibidir.

+0

Bu sorun, her eklentinin kendi projesidir. Eklenti projelerinden ana uygulamanın projesine bağımlılık yaratmak mümkün değildir. Sanırım ana proje için .h dosyasını oluşturabilirim sonra her bir eklentiye kopyalayabilirim, ancak değişiklik yapıldığında güncellenecek bir acı olur. – MyztikJenz

+0

true, en azından farklı sağlayıcılar tanımladığınızda, farklı sağlayıcılar için aynı öneki tutabilir ve bu şekilde dtrace -l -n MyApp * ::: girişini yapabilirsiniz ve bu şekilde bu önekle eşleşen tüm sağlayıcılar listelenmek –

İlgili konular