問題タブ [dtrace]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - DTraceで無効なアドレスエラーが発生することがありますが、常にそうとは限りません。
私のプログラム:
いくつかの出力:
なぜエラーですか?それはクラス名のようです(それだけ%s
で、削除してもエラーは発生しません)が、一部のクラスの名前が無効なポインターであると見なされるのはなぜですか?
エラーメッセージを取得して、DTraceプログラムのどの行で問題が発生したかを実際に知らせる方法はありますか?
object_getClassName
この構造検査ダンスを行う代わりに呼び出す方法はありますか?
価値のあることとして、私がトレースしているプログラムは正常に機能します。クラッシュすることはないので、クラスが実際に壊れているとは思いません。
macos - root として実行せずにプログラムを最初からトレースする方法
DTrace を呼び出して、ユーザーが指定したプログラムをトレースするツールを作成しています。
私のツールが dtrace -c を使用してプログラムを DTrace のサブプロセスとして実行する場合、プログラムに引数を渡すことができないだけでなく、プログラムは DTrace のすべての権限で実行されます。 Mac OS X)。これにより、機能するはずの特定の機能が壊れてしまい、明らかに、機能しないはずの非常に多くのことが可能になります。
私が知っている他の解決策は、自分でプログラムを開始し、それを送信して一時停止しSIGSTOP
、その PID を に渡しdtrace -p
、次に送信して続行することSIGCONT
です。問題は、DTrace がシンボル情報を収集している間、プログラムがトレースされずに数秒間実行されるか、プロセスを続行する前に数秒間スリープすると、DTrace がobjc<pid>:<class>:<method>:entry
一致するプローブがないと文句を言うことです。
root としてではなく、ユーザーのアカウントでプログラムを実行し、DTrace で最初から追跡できるようにする方法はありますか?
c - ミューテックス競合を測定する方法は?
Linux で PThreads を使用するスレッド化されたコードがいくつかありますが、これは過度のロック競合に苦しんでいると思われます。これを測定するために利用できるツールは何ですか?
Solaris には DTrace と plockstat があります。Linuxに似たようなものはありますか?(Linux 用の最近の DTrace 移植については知っていますが、まだ準備が整っていないようです。)
linux - osxに相当するltrace?
osx には非常に強力な dtrace/ktrace/dtruss ツールがありますが、今はそれらの処理を学ぶために必要な時間を費やすつもりはありません。
OSX で Linux ltrace (および場合によっては strace) と同等の機能を取得する最も簡単な方法は何ですか?
java - pthread_self() からの Pthread ID が dtrace スクリプトからのデータと一致しない
ここからこの dtrace スクリプトを使用して、Java プログラムのスレッドでコンテキスト スイッチがいつ発生するかを見つけようとしています。
スクリプトから収集されたデータを、実行中のプログラムから収集されたトレース データ (メソッドのエントリ/終了など) と照合しようとしています。単純に pthread_self() の値を返す短い JNI メソッドを使用して、実行中のスレッドの pthread ID を取得します。
私が抱えている問題は、pthread_self() を呼び出して取得したスレッド ID が、dtrace スクリプトで取得したスレッド ID とはまったく異なることです。pthread_self() はポインターを返すため、間違って呼び出しているためではないかと思いますが、mac osx で実際に pthread_t が何であるかに関する情報を見つけるのは困難でした。
c - dtraceを使用してコールスタックを表示する方法
dtraceを使用して、以下の単純なプログラムの呼び出しスタック、戻り値、および引数を表示する方法
pointers - メモリからDTraceスクリプトに文字列を取得する方法
DTraceスクリプトにchar*があり、ゼロで終了する文字列を指していることがわかっています。この文字列にアクセスする方法は?
ゼロで終了する文字列を処理するcopyin()のような関数はありますか?
macos - Mac OS X の strace -feopen < command > と同等
これはデバッグに役立ちます (したがってプログラミング関連)。Linuxでは、コマンドを使用できます
どの python モジュールと共有オブジェクトがロードされているかを把握します。macOS X に同等のワンライナーはありますか?
linux - Linux での DTrace の代替手段は何ですか?
私が見る限り、Linux での DTrace の実装は、ライセンスと政治によって妨げられています。現在、代替手段は何ですか?