22

Kcachegrind は素晴らしく、私のお気に入りのツールの 1 つですが、リモート サーバーのターミナル (ssh などを使用) で実行できないことが時々あります。

VNC または X サーバーの転送をセットアップできることは知っていますが、単純なものが必要な場合は非常に扱いにくいです。

kcachegrind コンソールの代替手段 (ncurses ベースなど) はありますか?

4

5 に答える 5

14

valgrind --tool=callgrindコマンドライン ユーティリティを使用して、callgrind 出力ファイル ( で作成) から基本情報と注釈を取得できますcallgrind_annotate。(ドキュメントのマニュアルページ セクション)。cachegrind ( ) によって生成されたファイルの場合、 (ドキュメントのセクション)を使用できます。これらのユーティリティは、デフォルトで valgrind 自体でビルドされます。valgrind --tool=cachegrindcg_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

于 2011-03-25T17:53:35.067 に答える
5

SSHFSを使用して、作業しているリモートディレクトリをマウントします(たとえば、UbuntuのSSHFSインストール手順を参照してください)。

次に、sshを実行valgrind --tool=callgrindして、リモートディレクトリで必要なオプションを指定して実行します。そのディレクトリはローカルにマウントされているので、ローカルでデバッグしている場合と同じように、KCacheGrindを使用してデータファイルを開くのは簡単です。

于 2011-03-24T01:40:15.847 に答える
0

リモート ホストで Valgrind/Callgrind を実行することは、適切なオプションのようです。または、Valgrind または Callgrind からの出力を PC に scp し、その上で KCachegrind を実行することもできます。

Emacs を使用している場合は、リモート ホストで起動して、ここに示すように実行できます。これにより、valgrind ツール用の Emacs 風のフロントエンドが得られます。

于 2011-03-23T22:46:53.303 に答える
-9

kcachegrind は、そのヘルプで、これが cachegrind と callgrind のフロントエンドであると述べています。

cachegrind と callgrind は、valgrind の最新バージョン (3.5) の一部です。そのため、http: //valgrind.org/downloads/current.html#currentから valgrind をダウンロードしてビルドします。valgrind --help を実行すると、callgrind 機能の使用方法が表示されます。

詳細については、あなたが何をしたいのかを知る必要があります。

于 2009-12-24T13:46:06.757 に答える