CLion 2024.1 ヘルプ

Valgrind の memcheck

Valgrind Memcheck(英語) は、リーク、無効なメモリアクセス、不正なメモリリリース、未定義の値参照などのメモリ使用の問題を検出するツールです。

CLion の Valgrind 統合は、Linux、macOS、WSL を備えた Windows で動作します (WSL 上の Valgrind を参照)。

Valgrind を設定する

  1. システムに Valgrind をインストール(英語)します。

  2. CLion で、設定 | ビルド、実行、デプロイ | 動的解析ツール | Valgrind に移動します。

  3. CLion は、システム PATH で設定されている Valgrind バイナリを検出しようとします。

    標準以外の Valgrind の場所の場合は、Valgrind 実行ファイルフィールドに手動でパスを指定します。

  4. 分析オプション(英語)を指定するか、デフォルトのものを使用します。

  5. オプションで、抑制ファイル(英語)のリストを構成します。

    例: 抑制ファイルを使用して、特定のライブラリの Valgrind チェックを無効にすることができます。

Valgrind settings

WSL で Valgrind を構成する

  1. 設定 | ビルド、実行、デプロイ | 動的解析ツール | Valgrind で、Valgrind バイナリの実際の Windows の場所ではなく、Valgrind への「サブシステム」パス (デフォルトでは /usr/bin/valgrind) を指定します。

  2. WSL ツールチェーンに接続された CMake プロファイルをアクティブ化します。

    これには、次のいずれかを実行します。

    • WSL ツールチェーンをデフォルトとして設定します。こうすると、自動的にデフォルトの CMake プロファイルに接続します。

      cl_wsl_deftoolchain.png
    • 別の CMake プロファイルを作成し、それを WSL ツールチェーンに接続して、設定スイッチャーでこのプロファイルを選択してください。

      CMake profile for the WSL toolchain

ターゲットの実行

Valgrind Memcheck を使用してターゲット(アプリケーションまたはテスト)を実行するには、次のいずれかを実行します。

  • ガターアイコンをクリックし、メニューから Valgrind Memcheck で 'ターゲット名' を実行オプションを選択します。

    cl_runValgrindGutter.png
  • 目的の実行 / デバッグ構成を選択し、メインメニューから実行 | Valgrind Memcheck で 'ターゲット名' を実行を呼び出すか、専用のツールバーアイコンをクリックします。

    Running Valgrind from the main toolbar

Valgrind が以前に構成されていない場合、CLion は構成ダイアログを開きます。

検索結果

  • 起動が完了したら、実行ツールウィンドウで Valgrind タブを開きます。

    Valgrind Memcheck output
  • 左側のペインには、ValgrindMemcheck によって検出されたすべての問題のリストが表示されます。各エントリには、命令ポインタ、問題のある関数名、(可能であれば)問題が存在するソースファイルが含まれます。

  • 右側のペインには、完全なスタックフレームの説明と対応するコードプレビュー(可能な場合)があります。

結果のエクスポートとインポート

  • 結果をエクスポートするには、Valgrind タブの左側の区画にあるエクスポート cl_valgrindexport_b.png アイコンをクリックして、宛先 XML ファイルを指定します。

    Export Valgrind results

    エクスポートボタンを実行中に使用できないことに注意してください

  • 結果をインポートするには、メインメニューから実行 | Valgrind XML 結果をインポートするを選択し、インポート元の XML ファイルを選択します。

関連ページ:

WSL2

WSL(WSL 2) – Windows Subsystem for Linux – は、Windows 10 以降で Linux バイナリ実行ファイルをネイティブに実行するための互換性レイヤーです。現在、Ubuntu、OpenSUSE、SLES など、いくつかの Linux ディストリビューションをサポートしています。プロジェクトに WSL ツールチェーンを設定すると、Windows マシンで実行されている CLion を移動せずに、Linux のツールチェーンを使用してビルドし、WSL で実行...

CMake プロファイル

CMake プロジェクトのビルドに必要な設定は CMake プロファイルに組み込まれています。これには、ツールチェーンとビルド型に加え、ジェネレーターや環境変数などの CMake オプションが含まれます。たとえば、異なるコンパイラーを使用したり、異なる設定でターゲットをビルドしたりするために、プロジェクトに複数のプロファイルを構成できます。プロファイル設定にアクセスする次のいずれかを実行して、CMake プロファイル設定を開きます。に移動します。を押してアクションの検索ダイアログを開き、CMake...

実行 / デバッグ構成

CLion は、実行 / デバッグ構成を使用して、コードを実行、デバッグ、テストします。各構成は、何を実行し、どのパラメーターと環境を使用するかを定義する、名前付きのスタートアッププロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的 — テスト、テストスイート、フィクスチャ、エントリを実行 / デバッグするたびに作成され、ガターアイコン / を使用します。永続的 — テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されます。永続的な構成は、削除...

Google サニタイザー

Sanitizers は Google が設計した動的コード分析用のオープンソースツールです: CLion は次の Sanitizers と統合されます。AddressSanitizer (ASan)、LeakSanitizer (LSan)、ThreadSanitizer (TSan)、UndefinedBehaviorSanitizer (UBSsan)、MemorySanitizer (MSan)、Sanitizers は、3.1 以降の Clang および 4.8 以降の GCC に実装さ...

プロファイラー

CLion の CPU プロファイラー統合により、アプリケーション(カーネルとユーザーのコードの両方)について収集されたパフォーマンスのメトリックを分析できます。プロファイラは Linux と macOS で利用でき、実装は Perf および DTrace ツールに基づいています。Perf と DTrace は、固定レートでのサンプリングを使用して、アプリケーションを中断し、プログラムカウンターとスタックトレースを収集します。これらは、プロファイリングレポートに変換されます。このようなレポートは長く、分析が難...