問題タブ [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.
linux - SystemTapスクリプトはどのようにして現在のスレッド数を判別できますか?
プローブ呼び出し内の現在のPIDの実際のスレッド数を判別できるSystemTapスクリプトを作成したいと思います。この番号は、現時点で/ proc / 4711/statusの出力に示されているものと同じである必要があります 。
私の最初のアプローチは、kprocess.createおよびkprocess.exitイベントの発生をカウントすることでしたが、これは明らかにスレッドカウントの相対的な増加/減少のみを提供します。
SystemTapスクリプトは、指定されたAPI関数の1つを使用して、この数をどのように決定できますか?たぶん、スクリプトは、procファイルシステムの出力に使用されているのと同じカーネル情報をどういうわけか読み取ることができますか?
linux - SystemTap で stapdev および stapusr グループを使用するには?
なしで実行するためにstapdev
、 andに自分自身を追加しようとしました。簡単な例を実行しようとしていますが、次のようなエラーが発生します。stapusr
stap
sudo
それを使用sudo
するとうまくいくようです:
これどうやってするの?
ノート
ubuntu 12.04 システムとインストール済みsystemtap
パッケージを使用しています
編集
linux - メジャー ページ フォールトの原因となるメモリ アクセスのログ
ページ フォールトの原因となるメモリ アクセス (ポインタ) を取得する方法を知っている人はいますか? 私は主に主要なページフォールトに興味があります。
私が達成しようとしていることについての少しの背景。大きなメモリ フットプリント (データベース) を持つアプリケーションがあり、ページングを大きなデータ構造 (テーブル、mmap() を使用して割り当てられたインデックスなど) へのアクセスと関連付けたいと考えています。プロセスのマッピングは、/proc//maps から簡単に取得できます。ここで、ページ フォールトを引き起こすメモリ アクセスがある場合、各データ構造にアクセスするときに発生したページ フォールトの数を追跡できます。
perf または systemtap で十分だと思います。何か案は?
module - SystemTap がエラー「警告: kbuild がステータス: 2 で終了しました」で失敗しました
カスタム カーネル 3.2-41 を構築し、必要な kernel-debuginfo-common および kernel-debuginfo パッケージを作成しました。これらのパッケージをカーネル 2.6.32-358 の CentOS システムにインストールしました。新しいカーネルでシステムが正常に起動しました。stap を実行して、システム コールとカーネル関数を問題なく一覧表示しました。
ただし、簡単な stap スクリプトを実行すると、次のようになります。
エラーで戻ります:
/usr/src/kernels/3.2-41 の下で 3.2-41 のソースを untar します。CentOS 2.6.32-258 カーネルで使用される /usr/include/ ディレクトリを上書きしようとしているため、kernel-headers-3.2.41.x86_64.rpm パッケージをインストールしませんでした。/usr/include にヘッダーをインストールする必要がありますか? それがこの問題の原因ですか?
systemtap - systemtap を使用したユーザー空間のプローブ
さて、私は SDT マーカーで自分のアプリケーションを調べようとしています。それを調べるための systemtap スクリプトを作成しましたが、systemtap はパス 5 までエラーを表示せず、パス 5 (実行の開始) 後も何もしません。SDT マーカーを使用した私の C プログラムは次のとおりです。
foo.c:
私のsystemtapスクリプトは次のとおりです。
probe_foo.stp
そして、私が実行するコマンドは次のとおりです。
これは私が得るものです:
その後は無限に待ちます。私のカーネル バージョンは 3.8.0 で、fedora 18 を使用しています。