システムコールのトレース


1

"trace"(またはdtrace、strace、またはtruss)を使用していくつかのトリックを習得しようとしているので、次のコマンドを使用します。

trace -d [random PID]

次のようなエラーメッセージが表示されます。

トレースエラー:トレース機能の失敗、KERN_KDREMOVE:権限が拒否されました

または

コード記述ファイル[PID]を開けませんでした

私はそのフラグについて確信が持てず、おそらく他のOSとは違うでしょう(私はDarwinカーネルでMacOSを使っています)が、主な機能は同じであるべきです。

誰かがこのツールに関する簡単なチュートリアルを提供できますか?

回答:


2

あなたは__したいですか すでに実行中のプロセス?少なくともLinux(root権限を持つ)では、以下を試してBashシェルプロンプトプロセスにアタッチすることができます。

# strace -p [PID of a process]
Process 2055 attached
read(0,

そして待っています。オプション -p 実行中のプロセスに接続するものです。オプション付き -d 、 得られる 自分自身からのデバッグ情報を表示します。

strace(1)マニュアルを参照してください。

-d strace自体のデバッグ出力を標準エラーに表示します。

root権限がないと、Ubuntu 13.10で次のようなエラーが発生します。

$ strace -p [random PID]
strace: attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Could not attach to process.  If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.