このdtraceエラーはどういう意味ですか?


15

iotop -C 5 122010年後半のMacbook Pro(10.6.7)で実行すると、このエラーが繰り返し発生します。

dtrace: error on enabled probe ID 5 (ID 19507: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0

この原因は何ですか?また、どうすれば修正できますか?

回答:



9

エラーはstderrに出力されており、次のようにコマンドを実行することで除外できます。

sudo iotop -C 5 12 2>/dev/null

これには、発生する可能性のある他のエラーを除外するという副作用があります。私のiotop出力を読みやすくするという点で、それは大丈夫なトレードオフであることがわかりました。

残念ながら、エラーの原因が何かわかりません。検索しましたが、まだ何も見つかりませんでした。


1
それはカーペットの下のエラーを一掃し、それらが存在しないふりをしているだけです!質問は、「どうすればそれらを無視するのか」ではなく、それらを引き起こした原因と修正方法を尋ねることでした。
markshep

5

つまり、トレースしないように要求したプロセスをトレースしようとすると、エラーが表示されます。

このエラーは技術的にはiTunesによるものではなく、次のようなコードを使用してトレースを無効にしているプロセスによるものです。

ptrace(PT_DENY_ATTACH, 0, 0, 0);

このコードは、カーネルレベルでプロセスにフラグを設定し、プロセスのデバッグとトレースを防ぎます。

これを行う最も有名なアプリケーションは、たまたまiTunesであり、このAPIはおそらくこのAPIが発明されたアプリケーションですが、このAPIは他のプロセスで使用できます。多くのサードパーティアプリケーションがこのAPIを使用しているのを見てきました。

もちろん、すべてのDRMと同様に、破損する可能性があります。このトレース防止およびデバッグ防止機能をバイパスするオプションは、デバッガーを使用して、カーネル空間で機能を修正するカーネル拡張機能へのAPI呼び出しをスキップすることから選択できます。


1

/unix//a/276219から取得

これはcsrutil statusdtrace動作に影響を及ぼす可能性のあるEl Capitanとそのシステム整合性保護()に潜在的に関連しています。

潜在的な修正には、Macを回復モードで再起動(- R起動時)し、ターミナルで実行することが含まれます:

csrutil enable --without dtrace

SIPを有効にしたまま、DTraceの制限を無効にします(注:これは文書化されていないパラメーターです)。

または、次の方法でSIPを完全に無効にします。

csrutil disable # Not recommended.

見る:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.