組み込み開発

GDB サーバーでのオンチップデバッグ

GDB サーバーにおいて、あなたが選択したマイクロコントローラ上でデバッグができる状況であれば、Run/Debug configurations の固有の Embedded GDB Server を使って CLion からデバッグ実行できるようになりました。OpenOCD、ST-Link GDB サーバー、Segger J-Link GDB サーバー、QEMU および他の多くの特有の GDB サーバーもカバーしています。

GDB サーバーへのパス、サーバーを実行する引数、そのほか適切な設定を提供する設定を作れば、Clion でのオンチップデバッグの準備は完了です!

Debug with GDB Server

ARM デバイスの周辺機器の参照

オンチップでデバッグする際、周辺機器を参照できることは重要なことです。このビューは Run/Debug configurations に Embedded GDB Server および OpenOCD Download & Run の2種類があります。両方のケース共、デバッグを開始すると Debug ツールウィンドウ に Peripherals タブが表示されるようになっています。ボードに適切な .svd ファイルをロードし、参照したいアクティブな周辺機器を選択してください。より詳細はこちらをご覧ください。

デバッガ

ペンディング、解決済み、無効なブレークポイント

CLion 2019.2 では行ブレークポイントについて3種類の区別をしています。

  • Pending: 行ブレークポイントはデバッグセッション外になっています。セッションがまだ開始されていない、または対応する共有ライブラリがまだロードされていないことを意味しています。
  • Resolved: 行ブレークポイントは提供されたデバッグシンボルを使って GDB または LLDB によって正しく解決され、実行中にヒットできます。
  • Invalid: 行ブレークポイントは GDB または LLDB によって解決できず、ヒットできません。

これらの種類はリアルタイムに自動的に検出され、ブレークポイントアイコンはそれに応じて更新されます。

GDB/LLDB コマンドの補完

GDB/LLDB のコマンドラインインターフェースのほうがお好みで、Debug ツールウィンドウでデバッガコンソールを利用する場合、GDB/LLDB コマンドの補完機能の恩恵を受けることができます。補完をするには Tab または Ctrl+Space キーを使ってください。

この補完はそれぞれ GDB または LLDB によって供給され、CLion はシンプルにその提案にアクセスしています。

MSVC ツールチェーンのための試験的なデバッガ

Microsoft Visual C++ のツールチェーンを使う場合、新しい試験的なデバッガをお試しいただけます。

試験的なデバッガは明確に開始した際に利用可能になります。Maintenance (⌥⇧⌘/) | Experimental features を表示し、cidr.debugger.lldb.windows を選択してください。

これは JetBrains 社のチームによって LLDB のトップに 実装され CLion にバンドルされました。ネイティブ表示のためにバンドルサポートを有効にするには、Settings | Build, Execution, Deployment | Debugger |  Data Views | C/C++ | Enable NatVis renderers for LLDB を使ってください。

より詳細はこちらをご覧ください。

MSVC debugger

メモリビュー

アプリケーションをデバッグする際、ポインタの後ろのメモリを簡単に確認することができます。Debug ツールウィンドウの Variables において、Memory View を表示するためにポインタ上で ⌘Enter を押下してください。2019.2 では、さらに便利にするために Memory View をアップデートしています。

アドレスへ

Memory View からメモリの特定のアドレスに移動します。アドレス、ポインタ変数を表す16進数を使うか、または興味のある変数でアドレス (&)を呼んで下さい。

コード補完は既知のシンボルでアシストしてくれます。Go to address

ASCII ビュー

ASCII メモリフォーマットに興味がある場合、Memory View の右側の列に ASCII ビューがあるので便利です。

ASCII view

パラメータのヒント

v2019.2 における パラメータ名のヒントのおかげで、関数コールを調査している間、関数のシグネチャに切り替える必要がありません。これによりコードの読みやすさが向上します。

関数コール、lambda、コンストラクタ、初期化リスト、マクロ式のために、CLion は渡された引数のパラメータ名を表示します。引数が文字または1つ以上のオペランドのある式の場合に表示されます。より詳細はこちらをご覧ください。

Parameter Name hints

コード解析

未使用のインクルード

‘未使用のインクルード’ チェックが戻ってきました。Clangd をベースとしたエンジンのトップに完全に再実装されました。保守的、積極的、デフォルト(使用されていないことを直接検出)の3つの検出の戦略を提案します。デフォルトは“使うものをインクルードする”の原則に最も近いものになります。 より詳細はこちらをご覧ください。

Unused Include

Clang-Tidy のアップデート

バイナリがバンドルされた Clang-Tidy が最新のバージョンにアップデートされました。CLion に新しいチェックをもたらしてくれます。いくつかの新しいabseil-* チェック、clang-analyzer-* グループからいくつか、新しい modernize-* チェックなどが含まれます。

Clang-Tidy

.clang-format ファイルのコード支援

v2019.1 以降、CLion はフォーマッターツールの代替として ClangFormat をサポートしてきました。プロジェクト内で .clang-format 設定ファイルをカスタマイズしているのであれば、それを更新する際にコード支援の恩恵を受けることができるようになります。より詳細はこちらをご覧ください。

クイックドキュメンテーション

特定のオプションについて知るには、クイックドキュメンテーションのポップアップ (F1) を呼び出し、サンプル付きのオリジナルのドキュメントを読んでください。

Quick Doc

Schema の検証インスペクション

CLion は 組み込みの JSON スキーマに照らし合わせて .clang-format 設定ファイルの内容を検証します。オプションの値が許容値のセットと一致しない場合は警告を表示します。

コード補完

.clang-format 設定ファイルをカスタマイズする際、コード補完がオプションとその値の両方で動作するので役に立ちます。

補完でのオプションの説明

オプション名のコード補完のポップアップにオプションに関する短い説明が含まれるようになりました。オプション名を入力しながらすぐに説明をチェックできます。

ClangFormat doc

命名規則

新しい設定

命名規則の設定 (Preferences | Editor | Code Style | C/C++ | Naming Convention) はよりフレキシブルにより多くの機能を提供するよう手直しされました。 Visibility (Public, Private, Protected) や Specifier (Const または Static) のような新しい設定が追加されました。また、複数の種類のエンティティに対処するためのルールも更新しました。

マウスを使うことなく新しい UI を操作できます。

Naming settings

スネークケースの対応

CLion ユーザーのリクエスト通り、やや似ている Upper_Snake_Casestyle やその他と共に、新しいスタイル – スネークケースに対応しました。スネークケースはsnake_case 名で最初の文字だけを大文字にし、残りは小文字になります。

Leading Snake Case

シェルスクリプトプラグイン

C++ プロジェクトで作業中にシェルスクリプトを編集する必要がある場合、シェルスクリプトプラグインがバンドルされているので CLion でも実施できます。

コードのハイライト、単語とパスの補完、さらにはテキストのリネームといった恩恵を受けることができます。

新しい言語のシンタックスハイライト

CLion は C や C++ だけではなく、Python, JavaScript, XML, なども含め、Rust, Swift, Kotlin/Native のプラグインも同様に提供し、広範囲にバンドルしてサポートしました。

プロジェクト内に PHP, Ruby, C#のような他の言語のコードはありますか?20以上の異なるプログラミング言語のシンタックスハイライトが CLion で利用可能になりました。より詳細はこちらをご覧ください。

Ruby syntax highlighting

バージョン管理: Local Changes からコミット

Version Control ツールウィンドウのLocal Changes タブから直接コミットできるようになりました。Settings/Preferences | Version Control | Commit Dialog の ‘Commit from the Local Changes without showing a dialog’ チェックボックスを選択するだけです。

Local Changes タブにおいて、コミットのショートカットキー (⌘K) を使うと、IDE はコミットのために修正されたファイルを選択し、コミットメッセージ欄にフォーカスします。バージョン管理に関するそのほかの変更はこちらをご覧ください。

Commit from Local Changes

パフォーマンス改善

とりわけインデキシングや応答、フリーズの解消など IDE のパフォーマンスを向上させるために CLion には現在進行中の作業がいくつかあります。このうちの一部が v2019.2 に搭載されました。:

  • インプレースのリネームリファクタリングは、遅れやフリーズを解消するために作り直されました。
  • エディタ内の修飾式のコード補完のパフォーマンスが大幅に向上しました。
  • I/Oオペレーション数を減らすことで、コンパイラ情報を収集し、リモートケースで CMake のステップのロードが加速されました。
  • CLion は Windows Defender がビルドのパフォーマンスに影響を与えている場合に警告し、リアルタイムスキャンから自動的にディレクトリを除外できるようになりました。

Rust プラグインのアップデート

Rust プラグインのもう一つの大きなアップデートにより新しい試験的なマクロの展開エンジンを使うことができます。Preferences | Languages & Frameworks | Rust | Expand declarative macros の設定を ON にしてください。

このエンジンはハイライト、名前解決、impl ブロックから生成されたモジュールやメソッドの補完のようなコードインサイト機能を提供します。これ以外にマクロ呼び出しでナビゲーションもできるようになります。

他の変更点として Rust の重複コードの検査、そのほか新しいクイックフィックスとインスペクションも含まれます。