マルチスレッド RTOS デバッグ
RTOS を使用したデバッグの場合、CLion は FreeRTOS(英語)、Azure RTOS(英語)、Zephyr(英語) タスク (スレッド) のビューを提供します。FreeRTOS の場合、オブジェクトとヒープも探索できます。
RTOS スレッドビューを有効にする
に移動します。
RTOS 統合を有効にするチェックボックスを設定し、オプションのリストから選択します。
RTOS 統合は、組み込み GDB サーバーや OpenOCD ダウンロード & 実行などの関連する実行 / デバッグ構成で機能することを目的としています。
例: QEMU(英語) エミュレーターを使用して組み込み GDB サーバー構成をセットアップする方法は次のとおりです。
![組み込み GDB サーバーの構成例 Embedded GDB Server configuration example](https://resources.jetbrains.com/help/img/idea/2023.3/cl_rtos_qemu_config.png)
FreeRTOS/Azure RTOS/Zephyr タスクビュー
上記のような構成をデバッグすると、FreeRTOS/Azure RTOS/Zephyr タスクがデバッグツールウィンドウのスレッドと変数ペインに表示されます。
![FreeRTOS スレッドビュー FreeRTOS thread view](https://resources.jetbrains.com/help/img/idea/2023.3/cl_rtos_debug_threadview.png)
タスクごとに、変数が変数ペインに表示されます。
RTOS タスクビューは対称型マルチプロセッシング (SMP)(英語) でも機能します。プロセッサーコアは同一で、同じメモリを共有する必要があります。
FreeRTOS オブジェクトビュー
FreeRTOS オブジェクトを探索するには、FreeRTOS オブジェクトタブに切り替えます。タスクテーブルには、ステータス情報を含むタスクのリストが表示されます。キューテーブルには、現在アクティブなキュー、セマフォ、ミューテックスが表示されます。タイマーテーブルには、ソフトウェアタイマーが一覧表示されます。
![FreeRTOS オブジェクトビュー FreeRTOS Objects view](https://resources.jetbrains.com/help/img/idea/2023.3/cl_rtos_objectsview.png)
このタブが正しく機能するようにするには、FreeRTOSConfig.h で次の定義を構成します。
タスク番号とキュータイプを表示するには、
configUSE_TRACE_FACILITY
を 1 に設定します。タスク名を正しく表示するために、
configMAX_TASK_NAME_LEN
をゼロより大きい値に設定してください。タスクスタック情報を表示するには、
configRECORD_STACK_HIGH_ADDRESS
を 1 に設定します。ランタイム情報(タスクテーブルのランタイム列)を収集するには、
configUSE_TRACE_FACILITY
およびconfigGENERATE_RUN_TIME_STATS
を 1 に設定します。ゼロより大きい
configQUEUE_REGISTRY_SIZE
およびvQueueAddToRegistry()
を使用して、キュー、セマフォ、ミューテックスに名前を割り当てます。タスク(作成時に名前を取得する)とは異なり、キューにはデフォルトで名前がないため、これは便利です。
CLion は、一部の定義が欠落している場合に警告を表示します。
![FreeRTOS は欠落を定義する FreeRTOS defines missing](https://resources.jetbrains.com/help/img/idea/2023.3/cl_rtos_defines_warning.png)
FreeRTOS ヒープビュー
FreeRTOS ヒープタブには、すべてのデフォルトの FreeRTOS メモリ管理スキームの現在のヒープ使用量とメモリブロック割り当てが表示されます。
![FreeRTOS ヒープビュー FreeRTOS Heap view](https://resources.jetbrains.com/help/img/idea/2023.3/cl_rtos_heapview.png)
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_debuggers_switch.png)
デバッガーオプション
CLion では、macOS/Linux の LLDB および Windows/Linux の GDB を使用して C/C++ 実行可能ファイルをデバッグできます (macOS の GDB を使用したデバッグは、カスタム GDB バイナリでのみ可能です)。また、Windows には MSVC ツールチェーン用の LLDB ベースのデバッガーがあります。バンドルされたデバッガーの現在のバージョン:、macOS および Linux 用 LLDB v 15.0.5、Windows 上の MSVC ツールチェーン...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_embedded_config_wizard.png)
組み込み GDB サーバー
GDB サーバーを使用してオンチップでデバッグするには、特別な実行 / デバッグ構成を作成する必要があります。CLion では、新しい組み込み構成ウィザードを使用して、次の GDB サーバーの構成をすばやく作成できます。Segger J-LinkGDB サーバー、GDB サーバーとしての Qemu、PyOCD、st-util(ST-LINK デバッグプローブ用のオープンソース GDB サーバー)、ST-LINK_gdbserver (STM32CubeIDE の一部)、PE マイクロ (OpenSD...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_embed_openocdconfig.png)
OpenOCD のサポート
組み込みターゲットが OpenOCD(Open On-Chip Debugger)を使用したオンチップデバッグをサポートしている場合は、OpenOCD ダウンロード & 実行構成を使用します。これは、STM32CubeMX、Makefile プロジェクト、カスタムビルドターゲットの場合を含む CMake ベースのプロジェクトで機能します。必要なツール OpenOCDOpenOCD は、フラッシュプローブとリモートのとして使用されます gdbserver を。では、OpenOCD の場所が正しく検出されたかど...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_rdconfigslist_temporary.png)
実行 / デバッグ構成
CLion は、実行 / デバッグ構成を使用して、コードを実行、デバッグ、テストします。各構成は、何を実行し、どのパラメーターと環境を使用するかを定義する、名前付きのスタートアッププロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的 — テスト、テストスイート、フィクスチャ、エントリを実行 / デバッグするたびに作成され、ガターアイコン / を使用します。永続的 — テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されます。永続的な構成は、削除...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_debugtoolwindow_overview.png)
デバッグツールウィンドウ
デバッグセッションを開始すると、デバッグツールウィンドウが開きます。このウィンドウでは、さまざまなデバッガーアクションを実行し、プログラムデータ(フレーム、スレッド、変数など)を分析できます。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。セッション:使用可能なデバッグセッションは、デバッグツールウィンドウの上部でタブに分割されています。特定の実行 / デバッグ構成に対してサービスウィンドウを有効にすると、こ...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_peripherals_load.png)
周辺ビュー
デバッグセッション中に、.svd ファイルで定義されたレジスタとペリフェラルを監視できます。周辺ビューは、組み込み GDB サーバーと OpenOCD ダウンロード & 実行の 2 つの構成タイプで使用できます。周辺ビューの構成組み込み GDB サーバーまたは OpenOCD ダウンロード & 実行構成をセットアップし、デバッグセッションを開始します。デバッグツールウィンドウで、周辺機器タブを開きます。.svd ファイルを読み込むをクリックします。複数の .svd ファイルを一度にロードし、次のステップで...