Kcachegrind は素晴らしく、私のお気に入りのツールの 1 つですが、リモート サーバーのターミナル (ssh などを使用) で実行できないことが時々あります。
VNC または X サーバーの転送をセットアップできることは知っていますが、単純なものが必要な場合は非常に扱いにくいです。
kcachegrind コンソールの代替手段 (ncurses ベースなど) はありますか?
Kcachegrind は素晴らしく、私のお気に入りのツールの 1 つですが、リモート サーバーのターミナル (ssh などを使用) で実行できないことが時々あります。
VNC または X サーバーの転送をセットアップできることは知っていますが、単純なものが必要な場合は非常に扱いにくいです。
kcachegrind コンソールの代替手段 (ncurses ベースなど) はありますか?
valgrind --tool=callgrind
コマンドライン ユーティリティを使用して、callgrind 出力ファイル ( で作成) から基本情報と注釈を取得できますcallgrind_annotate
。(ドキュメントのマニュアルページ セクション)。cachegrind ( ) によって生成されたファイルの場合、 (ドキュメントのセクション)を使用できます。これらのユーティリティは、デフォルトで valgrind 自体でビルドされます。valgrind --tool=cachegrind
cg_annotate
もう 1 つの方法は、プログラムとキャッシュ/callgrind の出力ファイルをマシンにコピーしてから、通常どおりローカルの kcachegrind で分析することです。しかし、この方法では、あなたのマシンが Windows 以外に Unix を持っていない場合や、互換性のない arch (kcachegrind はobjdump
プログラムに関する情報を取得するために local を呼び出すことができます) を実行している場合、難しい場合があります。
また、valgrind にコマンド ライン オプションをお勧めします。
valgrind --tool=cachegrind --branch-sim=yes
valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes
また、cachegrind のキャッシュ サイズを指定することもできます。--I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64
SSHFSを使用して、作業しているリモートディレクトリをマウントします(たとえば、UbuntuのSSHFSインストール手順を参照してください)。
次に、sshを実行valgrind --tool=callgrind
して、リモートディレクトリで必要なオプションを指定して実行します。そのディレクトリはローカルにマウントされているので、ローカルでデバッグしている場合と同じように、KCacheGrindを使用してデータファイルを開くのは簡単です。
リモート ホストで Valgrind/Callgrind を実行することは、適切なオプションのようです。または、Valgrind または Callgrind からの出力を PC に scp し、その上で KCachegrind を実行することもできます。
Emacs を使用している場合は、リモート ホストで起動して、ここに示すように実行できます。これにより、valgrind ツール用の Emacs 風のフロントエンドが得られます。
kcachegrind は、そのヘルプで、これが cachegrind と callgrind のフロントエンドであると述べています。
cachegrind と callgrind は、valgrind の最新バージョン (3.5) の一部です。そのため、http: //valgrind.org/downloads/current.html#currentから valgrind をダウンロードしてビルドします。valgrind --help を実行すると、callgrind 機能の使用方法が表示されます。
詳細については、あなたが何をしたいのかを知る必要があります。