動的解析

Valgrind Memcheck

Valgrind Memcheckで実行

CLionは、LinuxとmacOSのプラットフォームでは、Valgrind Memcheckと統合し、メモリーエラーの検出に役立ちます。

ターゲットをValgrind Memcheckで実行し、Run toolウインドウにある特別なタブに結果を表示することができます。 Memcheckを使用して、通常のターゲットと ユニットテストターゲットの両方を実行できます。

Valgrind は WSL のツールチェーンを使用する Windows やリモートモードでも使用できます。

Google Sanitizers

Google Sanitizersで実行

LinuxとmacOSで、アドレス指定能力の問題、メモリリーク、データ競合、および未初期化メモリーの問題を検出するには、CLionのGoogle Sanitizersの統合を使用します。

CLionは、Clang >= 3.8.0、またはGCC >= 5.0.0を使用している場合、-fsanitizeのコンパイルフラグでアプリケーションを実行/デバッグするときに、run toolウインドウにある「Sanitizer」のタブでサニタイズ出力を視覚化します。 エラーの一覧や、それらのIDEでの形跡の確認、およびソースへの移動、ソースのプレビュー、またはフレーム情報を調べることができます。

CPUプロファイラ

CPUプロファイラ

CLionはLinux(Perf)とmacOS(DTrace)のCPUプロファイラと統合されています。 プロファイリングは、リモートモードと WSL でも実行できます。

プロファイラをIDEから直接実行し、解析結果を専用のツールウインドウ(ビュー | ツールウィンドウ | CPUプロファイラ)で確認できます。

フレームチャート、呼び出しツリー、およびメソッド一覧を使用して、コードにあるパフォーマンス問題の概要を把握しましょう。 コードベースで問題を検索するには、ソースコードに移動します。

詳細情報

コードカバレッジ

コードカバレッジ

構成を実行中にあるステートメントが実行されたかどうかを確認したいと思ったことがありませんか。そのような場合は、コードを評価するための Statements Coverage(ステートメントカバレッジ)が必要になります。 CLion にはllvm-cov/gcovツールが組み込まれているため、ステートメントカバレッジを計測できます。

CLion では行カバレッジに加えて、分岐カバレッジも計算できます。 この手法では、各制御構造にあるすべての分岐が考慮されます。

これは、ユニットテストを実行するか、通常の構成を実行することで取得できます。 結果はCoverageツールウィンドウか、エディタの左ガターのカラー表示で確認することができます。

詳細情報