翻訳と辞書 |
Valgrind
Valgrind は、メモリデバッグや、メモリリークの検出、スレッドエラーの検出、プロファイリングなどを行うための仮想機械を利用したソフトウェア開発ツールである。Valgrind という名前は、北欧神話におけるヴァルハラへの入り口の名に由来している〔Valgrind FAQ 〕。 Valgrind は元々 x86 上の Linux 用のメモリデバッグツールとして設計されたが、開発が進んだ結果、バグ検出やプロファイラといった動的解析ツールのための汎用のフレームワークとなっている。Valgrind は多数の Linux 関連のプロジェクトで使用されている〔valgrind.org's list of users 〕。Valgrind は GNU General Public License の元でリリースされているフリーソフトウェアである。 == 概要 == Valgrind は、本質的には JIT コンパイラ(バイナリ変換)の技術を用いた仮想機械である。元々のプログラムそのものがホストのプロセッサで直接実行されるわけではない。代わりに、VEX と呼ぶライブラリを使い、Valgrind はまずプログラムを中間表現(IR, Intermediate Representation)に変換する。中間表現自体はプロセッサ非依存であり、SSA ベースである。変換の後、Valgrind が中間表現をマシンコードに再度変換してホストプロセッサで実行させるが、その前後で「ツール」(下記参照)は IR に対して自由に操作を行うことができる。かなりのパフォーマンスがこれらの変換の過程(およびツールが挿入するコード)で損なわれ、プログラムは Valgrind 上では(全くツールを使用しない場合でも)通常より4〜5倍低速に動作する。しかし、仮想機械による IR の形態は計測・解析・デバッグには適している。これによりツールの開発が簡単になり、大半のプロジェクトでは、デバッグ中のこの程度の性能の低下は大きな問題ではない。 システムコールも Valgrind で一度取り扱ってから、ホスト OS のシステムコールを呼び出す。仮想機械として仮想化するのは CPU とメモリのみであり、それ以外のハードウェアはホスト OS の物をそのまま使う。
抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Valgrind」の詳細全文を読む
スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース |
Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.
|
|