問題タブ [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 に答える
197 参照

semantics - Linux での Systemtap libdwfl エラー

仮想Linuxで、OSプロセスをプロファイリングするためのSystemtapツールを動作/セットアップしようとしています。VirtualBox を使用してイメージを実行しています。経由

取得したバージョンは次のとおりです。

ツールを正しくダウンロードしてインストールし、簡単なプログラム (.stp) を作成しました。ただし、同じエラーが発生し続けます。これは、多くの場所で情報を検索しても成功しませんでした:

実行後:

私は得る:

https://sourceware.org/systemtap/SystemTap_Beginners_Guide/errors.htmlによると

⁠セマンティック エラー: libdwfl の失敗 デバッグ情報の処理中に問題が発生しました。ほとんどの場合、このエラーは、プローブされたカーネルとバージョンが正確に一致しない kernel-debuginfo パッケージのインストールが原因で発生します。インストールされた kernel-debuginfo パッケージ自体に、一貫性または正確性の問題がある可能性があります。

「kernel-debuginfo」パッケージに関する関連情報は見つかりませんでした。また、冗長オプションを試してみましたが、メリットはありませんでした。VM の古いスナップショットを試してみました。何か案は?

私が実行した .stp プログラムのコード:

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

linux - ユーザー空間アプリケーションのシステム タップ スクリプトをクロス コンパイルする方法

私が直面した課題は、スクリプト内のプロセス名/ライブラリ名を特定することでした.クロスコンパイル中に、プロセス名とライブラリ名は、ホスト内のプロセス/ライブラリの実際のパスで参照されています(生成された.コ)。

ホストとターゲットの実際のパスが異なるため、クロス コンパイルされたインストルメンテーションは機能しません。

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

linux - SystemTap を使用して VFS でファイルのオープンとクローズをプローブするにはどうすればよいですか?

SystemTap スクリプトの使用例を見probe syscall.open.return { } ましたが、systemcall を呼び出さないアプリケーションがいくつかあります VFS で開いているファイルをプローブするにはどうすればよいですか

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

rhel5 - systemtap がフレームグラフの作成に必要な出力を生成しないのはなぜですか?

フレームグラフ データを生成する目的で stap を実行すると、out.stap-stacks にプロセス データがないのはなぜですか?

  • OS:RHEL5.10.0.2
  • カーネル: 2.6.18-371.11.1.el5
  • システムタップ: 1.8-6.el5

インストールされたパッケージ:

systemtap-sdt-devel-1.8-6.el5

systemtap-devel-1.8-6.el5

systemtap-devel-1.8-6.el5

systemtap-runtime-1.8-6.el5

systemtap-sdt-devel-1.8-6.el5

systemtap-1.8-6.el5

systemtap-initscript-1.8-6.el5

systemtap-client-1.8-6.el5

systemtap-server-1.8-6.el5

systemtap-testsuite-1.8-6.el5

カーネル-devel-2.6.18-371.11.1.el5

カーネル-デバッグ-devel-2.6.18-371.11.1.el5

使用したコマンド:

out.stap-stacks ファイルのサンプル:

0xffffffff8000e81a 0x0 1 0xffffffff8004ab87 0x0 1 0xffffffff8025d15d 0x0 1 0xffffffff80239356 0x0 1 0xffffffff8004219a 0x0 1 0xffffffff8000ca32 0x0 1 0xffffffff8003214e 0x0 1 0xffffffff80013bc8 0x0 1 0xffffffff80232d41 0x0 1 0xffffffff8001a4ca 0x0 1 0xffffffff80011db5 0x0 1 0xffffffff8004aad2 0x0 1 0xffffffff800ec8bb 0x0 1 0xffffffff8003ead5 0x0 1 0xffffffff80234c43 0x0

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

systemtap - systemtap を使用してユーザー空間プローブから戻り値にアクセスする方法

ファイル名やファイル記述子など、glibc の「open」関数から返されるデータにアクセスしたい

私は試します

しかし、それはエラーです

セマンティック エラー: 未解決のターゲット シンボル式: 識別子 '$fd' at malloc.stp:3:10 ソース: fd = $fd ^

パス 2: 分析に失敗しました。[マンエラー::pass2]

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

linux - forktracker.stp の実行時に pid() と new_pid が同じ値であることを理解する方法は?

プロセス フローを追跡するためにforktracker.stpを使用しています。forkスクリプトは次のようになります。

スクリプトを実行すると、次の結果が出力されることがわかりました。

pid()new_pidが同じ値である理由がわかりません。fork「一度呼んだら二度戻る」に関係しているのか疑問です。そこで、テストする簡単なプログラムを作成します。

このプログラムを追跡すると、スクリプトは次を出力します。

forkしたがって、「 1回呼び出して2回返す 」とは関係ないようです。

pid()new_pidが同じ値であることをどのように理解できますか?

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

systemtap - systemtap : ローカル変数にはアクセスできますが、ローカル ポインターにはアクセスできません

システム タップを使用してソース コード フローを理解したかったのですが、kernel.statement プローブ関数を使用してローカル変数にアクセスしようとしたため、ポインターを除く他のすべての変数が表示されます。

上記の stap コードを実行すると、

local = pid=0xf98 ret=0x0 task_local=? 私=?

task_local と i の値が出力されない理由を理解するのに役立ちます。

よろしく、ヤシュ。