問題タブ [jprobe]

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.

0 投票する
1 に答える
2695 参照

java - Eclipse 用の jProbe プラグインのインストール

現在、アプリケーションのパフォーマンスとメモリの分析を行っています。この分析を実行するために jProbe 9.5 を使用しています。Eclipse 用の jprobe プラグインをインストールする手順を教えてください。この [link] JProbe Plugin For Eclipse 3.7も参照しましたが、提供されたリンクではプロセスが明確に説明されていません。

これに関するヘルプは大歓迎です。ありがとう

0 投票する
1 に答える
537 参照

java - Jprobe プロファイリング Java アプリケーション

jprobe を使用して Java アプリケーションのプロファイルを作成しています。プロファイルしようとしている Java アプリケーションは、Eclipse ベースのアプリケーションです。アプリケーションがさまざまな機能を提供するために、複数のプロジェクトを作成しました。アプリケーションをビルドすると、アプリケーションは製品としてエクスポートされ、.exe ファイルを受け取ります。jprobe を使用して .exe ファイルをプロファイリングする方法を知りたいです。ヘルプ ドキュメントから、jar ファイルがアプリケーションのプロファイリングに使用されることがわかりました。ただし、この場合、アプリケーションは exe ファイルです。

これに関するヘルプは大歓迎です。

0 投票する
1 に答える
675 参照

c - Ubuntu 14 で「do_execve」への Jprobe が機能しないが、Ubuntu 12 では機能する

Jprobes を使用して Linux カーネルで関数 'do_execve()' へのフックを実行しようとしていますが、特定のシステムで問題が発生しています。Ubuntu 12、64ビット(カーネルバージョン3.11)でオンラインで見つけたこのコードを使用してみました:

Hook.c:

メイクファイル:

モジュールは期待どおりに機能しました。最初にシステム上で正しくコンパイルされ、次に関数「insmod」で挿入されました (ROOT 権限で)。dmesg を実行すると、正しい出力が表示されます。

この問題は、Ubuntu 14、64 ビット (カーネル バージョン 3.13) システムで同じコードを試したときに発生しました。システムで再コンパイルして、以前のシステムで行ったのと同じように挿入しましたが、今回は機能しませんでした。エラーは発生せず、成功メッセージ (「Planted jprobe at [ADDRESS WAS HERE], handler addr [ADDRESS WAS HERE]」) が出力されますが、「do_execve」行は出力されません。Google をスキャンしましたが、説明や解決策が見つかりませんでした。何か案は?

注: Ubuntu 14 で「do_fork()」をフックしてみましたが、うまくいきました。これは「do_execve()」を使ったもので、何が何だかわかりません!

0 投票する
1 に答える
604 参照

linux - jprobe do_execve がカーネル 4.1 で動作しない

do_execve に jprobe フックを設定して、実行されたすべてのプログラムをキャッチしたいと考えています。

私のコードは <= 3.2 Linux カーネル (debian) で動作しています。これは、Linux カーネル 3.2 での私の出力です。

4.1カーネルでは同じ結果(すべてが登録されています)ですが、「execve」はありません:

そして、これは私のコードです:

kallsyms で grep を実行すると、3.2 になります。

そして4.2で:

関数を次のように変更しようとしました (do_execve プロトタイプが変更されたため)。

それでも役に立ちませんでした。

do_fork や sys_open などの他の関数にはフックを設定できますが、do_execve には設定できません。なんで?誰にもアイデアがありますか?なぜ機能しなくなったのですか?

編集:

do_execveat もフックしています。

0 投票する
0 に答える
899 参照

linux - 一部の関数で kprobe が機能しない

handle_pte_faultLinux カーネルで関数呼び出しを追跡するために kprobe を使用しようとしています。プローブできますhandle_mm_faultが、プローブしようとするとhandle_pte_dault、kprobe のハンドラはhandle_pte_fault何も出力しません。

これを使用して、インラインであり、おそらく静的な関数をプローブできないことがわかりました。そこで、handle_pte_fault関数の定義を次のように変更し、カーネルを再コンパイルしました。

から:

に:

handle_pte_faultまた、シンボルが存在することを確認するために以下を追加しました

それでも、handle_pte_fault 関数を追跡/調査することはできません。任意のヘルプまたは説明。kprobe は一部のランダム関数でしか機能しないということですか?

カーネル v4.13 を使用しています。

以下は、私が使用している kprobe のカーネル モジュール コードです。