2016-04-08 5 views
0

sh DTraceプロバイダをサポートするために、2007年にx86 shバイナリについて約patches(およびupdates)を発見しました。私shがあるため、Oracleのサイト(​​上の同じ記事)たぶんsh DTraceプロバイダを有効にするには?

/bin/sh DTrace Provider

$ sudo dtrace -l | grep command-entry 

参照:私はで私がチェックしてるOS X上の任意のプローブを見つけることができませんしかし

GNU bashと同じですか?

これらのプローブは、私はそれらを見つけることができる方法や、私はそれらを活性化することができますどのように、実装された?
$ /bin/sh --version 
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15) 

Solaris上にのみ実装されていますか?

答えて

1

あなたが参照しているパッチは、Solarisのbourneシェルに特有のパッチで、他のシェルに移植されたことはまったくわかりません。 illumosで

(旧姓のOpenSolarisは)歴史をコミット、我々は/bin/shが3月2日ead1f93をコミット中ksh93へのシンボリックリンクに変更されたことを確認することができ、2010年アランのブログ記事が2007日付であることを考えると、これは含まれていませんでしたSolaris 10では、2005年にSolaris 10がリリースされて以来、少なくとも最初はそうではありませんでした。は、2007年のアップデートの1つになるかもしれませんが、私はそれを疑います。既存のコードからは、kshへの切り替え前に/bin/shが提供されていることを見つけることさえできません。これは、閉じたビットの1つである可能性があります。

いずれの方法でも、それはillumosリリースの一部ではなく、illumosコミット履歴のcommand-entryのdtraceプローブへの参照はありません。アランや他の誰かが話すことができない限り、それはおそらく時間がなくなります。

要約すると、これらのパッチは、Sunやその他のリリース製品には含まれていないと言えるでしょう。これは、既存のオープンソースシェル上で、最初から再実装する必要があります。

2

パブリックSolarisのbourneシェルにこれを追加したことはありませんでしたが(私はPSARCの承認を得ましたが)、テストしているうちにbourneシェルがフォークする方法でいくつかの主要なヒットを見つけました。これに対処するために、私はposix_spawn()を使用してそれを移行する必要があります。 Solaris 11でこのシェルを使用しなくなったことを考えれば、これはかなり効果がなかったでしょう。私は他のシェルに行くことをあきらめていませんが、それは私の優先事項の一つではありません。

プローブを別のシェルに移動するのは、複合変数があるときに、 "変数代入"の前の値として何を返すべきかを決定することを除いて、かなり簡単です。

関連する問題