問題タブ [systemtap]

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 に答える
2394 参照

linux - sock_sendmsg(): カーネルによる暗黙の関数呼び出し

sock_sendmsg()で定義されているカーネルの関数にハンドラーをフックすることにより、Linux 上の特定のプロセスによって送信されたすべてのデータをダンプしようとしましたlinux/socket.cprobe kernel.function("sock_sendmsg@net/socket.c")2 番目の引数で渡されたすべてのデータ ブロックをダンプするための systemtap プローブ ハンドラーを作成することで、これを行うことができますstruct msghdr *msg

からの抜粋は次のnet/socket.cとおりです。

systemtap スクリプトをテストしましたhook_sendmsg.stp。まずhook_sendmsg.stp、1 つのターミナルで実行しました。次に、別のターミナルを開き、telnetコマンドを呼び出して接続し、ターミナルstackoverflow.comに入力HEAD / HTTP/1.0<Enter twice>しました。hook_sendmsg.stpから次の出力を得ました。

これはsock_sendmsg()、 のコンテキストで合計 6 回呼び出されたことを示していますtelnet。明らかに 3 番目と 4 番目は、Google のパブリック DNS サーバー8.8.8.88.8.4.4. 5行目と6行目は、 から送信されたHTTPリクエストの2行ですtelnet。しかし、1 番目と 2 番目は何のために呼び出されたのでしょうか。それらはカーネルによって内部的に呼び出されましたか?

前もって感謝します。

0 投票する
2 に答える
1603 参照

ubuntu - ubuntu 上の Java の Systemtap

Java プロセスをトレースするだけでなく、systemtap での openjdk トレースの新しいサポート、ホットスポット トレースとメソッド トレースの両方を使用したいと考えています。

したがって、ddebs.ubuntu.com リポジトリをインストールして、カーネル デバッグ シンボルをインストールしました。その後、カーネル タップセットを使用するが、Java タップセットを使用しない stap スクリプトを呼び出すことができます。openjdk-7-jdk-dbgsym という名前のパッケージに気付き、それをインストールして、これに openjdk 用の systemtap タップセットがあるかどうかを確認しようとしましたが、これは openjdk-7-dbg パッケージと競合します (その後、ubuntu では許可されません)。 openjdk-7-jdk-dbgsym パッケージは「公式」サーバーからのものではないため、バグ レポート. 1 つをアンインストールしてもう 1 つをインストールしても、とにかく役に立ちません。

ubuntuでこれを成功させた人はいますか?

編集: java byteman をサポートする ubuntu でソースから systemtap を正常にビルドするには、

(またはあなたの奇妙なjvmの場所)

そうしないと、ビルドがjarを実行しないため、必要になります。次に、ソース dir java/README ファイルの手順に従って make install を実行する必要があります (パスを変更することを忘れないでください)。

別の --with-dyninst オプションもありますが、試したことはありませんが、他の呼び出しモードでは「修正」される可能性があります

edit2: まあ、それはコンパイルして実行さえしますが、与えられた例で BYTEMAN_HOME が設定されていても何も出力しません...

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

ubuntu - SystemTap セマンティック エラー、メンバー 'mnt_parent' が見つかりません

systemtap をインストールしました。stap -o を使用して結果をファイルに送信しようとすると、エラーが発生しました: sudo stap -o a.out b.stp

systemtap が使用する言語にとても混乱しています。誰でも私を助けることができますか?

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

eclipse - Eclipse / Ubuntu 13.10 x64 での C++ プログラムのコール グラフ

Eclipse / Ubuntu 13.10 x64 で C++ プログラムのコール グラフを描画したいと考えています。

SystemTap をインストールし、「初期テスト」を適切に開始できます。

しかし、プログラムの呼び出しグラフを取得しようとすると、次のようになります。

  • プロジェクトを右クリックすると不正な fd 番号-> プロファイリング ツール -> 関数コールグラフ
  • [実行] メニューからプロファイリングを起動すると、出力ファイルが破損する

これを Ubuntu で適切に動作させるにはどうすればよいですか?

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

systemtap - SystemTap 登録エラー

この Warning: probe kernel.function("some function@some file") (address 0xSomething) registration error (rc -84) を見たことがありますか? もしそうなら、あなたはそれを解決するために何をしましたか? これは警告であり、実行時 (Pass 5 の後) に発生します。しかし、登録エラーでその特定の機能のタップをスキップします。しかし、私はこの機能を調査する必要があります。これらの関数は __kprobes ではないことに注意してください。

私のカーネルは 3.11.0-15-generic (Ubuntu 12.04) で、SystemTap のバージョンは 2.4 です。

どうやらSytemTap のインストールを台無しにしてしまったようです。ここで(私による)2番目のコメントを参照してください。

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

remote-debugging - ソースコード付きのsystemtapリモートデバッグユーザープロセス

mongodマシン Aで実行されているストリップ バージョン (シンボル テーブルなし) があります。これは運用サーバーです。
マシン上の BI には、ソース コードとストリップされていないmongodバイナリ (シンボル テーブル付き) があります。次の製品の問題をリモートでデバッグしたい:

次のようなプローブが機能します。

しかし、この他のプローブ:

ではない。

A と B の両方にまったく同じバイナリ バージョンがあり、バイナリ パスも同じです。マシン B では、すべてのプローブが期待どおりに機能します。

mongodこの場合、リモートでデバッグするにはどうすればよいですか? 出来ますか?

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

android - Android Systemtap がモジュールをロードできない

GT-i9300 に単純な Systemtap モジュールをロードしようとしています。

エラーが発生します

モジュール '/sdcard/systemtap/modules/monitor_fopen.ko' の挿入エラー: モジュール内の不明なシンボル

私が取った手順:


1.デバイスでルートを取得します

このRomをインストールしてこれを行いました

2. カスタム カーネルをビルドする

3. ビルドされた zImage をデバイスにフラッシュします

4. systemtap を PC にインストールする

5. .stp ファイルを作成する

6. コンパイルされたカーネルを使用して、.stp ファイルから .ko ファイルをビルドします。

7. カスタム カーネルを実行するデバイスに Systemtap Android アプリをインストールします。

https://github.com/flipreverse/systemtap-android-app

8. アプリを起動し、アプリにルート アクセス権を付与します。

Superuser.apk は、Systemtap が root アクセスできるかどうかを尋ねます。

9. 手順 6 の .ko ファイルを SD カードにプッシュします。

10. モジュールをロードする

11. モジュールの読み込み結果を読み取る

ロードされたカーネル モジュール: monitor_fopen.ko 出力ファイル: monitor_fopen_2014.mm.dd_sss.* モジュール '/sdcard/systemtap/modules/monitor_fopen.ko' の挿入エラー: モジュール内の不明なシンボル


どのステップで間違ったのかわかりません。誰も手がかりを持っていますか?