Valgrind の memcheck
Valgrind Memcheck(英語) は、リーク、無効なメモリアクセス、不正なメモリリリース、未定義の値参照などのメモリ使用の問題を検出するツールです。
CLion の Valgrind 統合は、Linux、macOS、WSL を備えた Windows で動作します (WSL 上の Valgrind を参照)。
Valgrind を設定する
システムに Valgrind をインストール(英語)します。
CLion で、
に移動します。CLion は、システム
PATH
で設定されている Valgrind バイナリを検出しようとします。標準以外の Valgrind の場所の場合は、Valgrind 実行ファイルフィールドに手動でパスを指定します。
分析オプション(英語)を指定するか、デフォルトのものを使用します。
オプションで、抑制ファイル(英語)のリストを構成します。
例: 抑制ファイルを使用して、特定のライブラリの Valgrind チェックを無効にすることができます。
![Valgrind の設定 Valgrind settings](https://resources.jetbrains.com/help/img/idea/2024.1/cl_valgrindSettings.png)
WSL で Valgrind を構成する
/usr/bin/valgrind) を指定します。
で、Valgrind バイナリの実際の Windows の場所ではなく、Valgrind への「サブシステム」パス (デフォルトではWSL ツールチェーンに接続された CMake プロファイルをアクティブ化します。
これには、次のいずれかを実行します。
WSL ツールチェーンをデフォルトとして設定します。こうすると、自動的にデフォルトの CMake プロファイルに接続します。
別の CMake プロファイルを作成し、それを WSL ツールチェーンに接続して、設定スイッチャーでこのプロファイルを選択してください。
ターゲットの実行
Valgrind Memcheck を使用してターゲット(アプリケーションまたはテスト)を実行するには、次のいずれかを実行します。
ガターアイコンをクリックし、メニューから Valgrind Memcheck で 'ターゲット名' を実行オプションを選択します。
目的の実行 / デバッグ構成を選択し、メインメニューから を呼び出すか、専用のツールバーアイコンをクリックします。
Valgrind が以前に構成されていない場合、CLion は構成ダイアログを開きます。
検索結果
起動が完了したら、実行ツールウィンドウで Valgrind タブを開きます。
左側のペインには、ValgrindMemcheck によって検出されたすべての問題のリストが表示されます。各エントリには、命令ポインタ、問題のある関数名、(可能であれば)問題が存在するソースファイルが含まれます。
右側のペインには、完全なスタックフレームの説明と対応するコードプレビュー(可能な場合)があります。
結果のエクスポートとインポート
結果をエクスポートするには、Valgrind タブの左側の区画にあるエクスポート
アイコンをクリックして、宛先 XML ファイルを指定します。
エクスポートボタンを実行中に使用できないことに注意してください。
結果をインポートするには、メインメニューから
を選択し、インポート元の XML ファイルを選択します。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_wsl_new_toolchain.png)
WSL2
WSL(WSL 2) – Windows Subsystem for Linux – は、Windows 10 以降で Linux バイナリ実行ファイルをネイティブに実行するための互換性レイヤーです。現在、Ubuntu、OpenSUSE、SLES など、いくつかの Linux ディストリビューションをサポートしています。プロジェクトに WSL ツールチェーンを設定すると、Windows マシンで実行されている CLion を移動せずに、Linux のツールチェーンを使用してビルドし、WSL で実行...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_cmake_settings_keymap.png)
CMake プロファイル
CMake プロジェクトのビルドに必要な設定は CMake プロファイルに組み込まれています。これには、ツールチェーンとビルド型に加え、ジェネレーターや環境変数などの CMake オプションが含まれます。たとえば、異なるコンパイラーを使用したり、異なる設定でターゲットをビルドしたりするために、プロジェクトに複数のプロファイルを構成できます。プロファイル設定にアクセスする次のいずれかを実行して、CMake プロファイル設定を開きます。に移動します。を押してアクションの検索ダイアログを開き、CMake...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_rdconfigslist_temporary.png)
実行 / デバッグ構成
CLion は、実行 / デバッグ構成を使用して、コードを実行、デバッグ、テストします。各構成は、何を実行し、どのパラメーターと環境を使用するかを定義する、名前付きのスタートアッププロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的 — テスト、テストスイート、フィクスチャ、エントリを実行 / デバッグするたびに作成され、ガターアイコン / を使用します。永続的 — テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されます。永続的な構成は、削除...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_sanitizers_settings.png)
Google サニタイザー
Sanitizers は Google が設計した動的コード分析用のオープンソースツールです: CLion は次の Sanitizers と統合されます。AddressSanitizer (ASan)、LeakSanitizer (LSan)、ThreadSanitizer (TSan)、UndefinedBehaviorSanitizer (UBSsan)、MemorySanitizer (MSan)、Sanitizers は、3.1 以降の Clang および 4.8 以降の GCC に実装さ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_attachwithprofiler.png)
プロファイラー
CLion の CPU プロファイラー統合により、アプリケーション(カーネルとユーザーのコードの両方)について収集されたパフォーマンスのメトリックを分析できます。プロファイラは Linux と macOS で利用でき、実装は Perf および DTrace ツールに基づいています。Perf と DTrace は、固定レートでのサンプリングを使用して、アプリケーションを中断し、プログラムカウンターとスタックトレースを収集します。これらは、プロファイリングレポートに変換されます。このようなレポートは長く、分析が難...