CLion 2024.1 ヘルプ

マルチスレッド RTOS デバッグ

RTOS を使用したデバッグの場合、CLion は FreeRTOS(英語)Azure RTOS(英語)Zephyr(英語) タスク (スレッド) のビューを提供します。FreeRTOS の場合、オブジェクトヒープも探索できます。

RTOS スレッドビューを有効にする

  1. 設定 | ビルド、実行、デプロイ | 組み込み開発 | RTOS 統合に移動します。

  2. RTOS 統合を有効にするチェックボックスを設定し、オプションのリストから選択します。

    Enabling RTOS Integration

RTOS 統合は、組み込み GDB サーバーOpenOCD ダウンロード & 実行などの関連する実行 / デバッグ構成で機能することを目的としています。

例: QEMU(英語) エミュレーターを使用して組み込み GDB サーバー構成をセットアップする方法は次のとおりです。

Embedded GDB Server configuration example

FreeRTOS/Azure RTOS/Zephyr タスクビュー

上記のような構成をデバッグすると、FreeRTOS/Azure RTOS/Zephyr タスクがデバッグツールウィンドウスレッドと変数ペインに表示されます。

FreeRTOS thread view

タスクごとに、変数が変数ペインに表示されます。

RTOS タスクビューは対称型マルチプロセッシング (SMP)(英語) でも機能します。プロセッサーコアは同一で、同じメモリを共有する必要があります。

FreeRTOS オブジェクトビュー

FreeRTOS オブジェクトを探索するには、FreeRTOS オブジェクトタブに切り替えます。タスクテーブルには、ステータス情報を含むタスクのリストが表示されます。キューテーブルには、現在アクティブなキュー、セマフォ、ミューテックスが表示されます。タイマーテーブルには、ソフトウェアタイマーが一覧表示されます。

FreeRTOS Objects view

このタブが正しく機能するようにするには、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 defines missing

FreeRTOS ヒープビュー

FreeRTOS ヒープタブには、すべてのデフォルトの FreeRTOS メモリ管理スキームの現在のヒープ使用量とメモリブロック割り当てが表示されます。

FreeRTOS Heap view

関連ページ:

デバッガーオプション

CLion では、macOS/Linux の LLDB および Windows/Linux の GDB を使用して C/C++ 実行可能ファイルをデバッグできます (macOS の GDB を使用したデバッグは、カスタム GDB バイナリでのみ可能です)。また、Windows には MSVC ツールチェーン用の LLDB ベースのデバッガーがあります。バンドルされたデバッガーの現在のバージョン:、macOS および Linux 用 LLDB v 17.0.6、Windows 上の MSVC ツールチェーン...

組み込み GDB サーバー

GDB サーバーを使用してオンチップでデバッグするには、特別な実行 / デバッグ構成を作成する必要があります。CLion では、新しい組み込み構成ウィザードを使用して、次の GDB サーバーの構成をすばやく作成できます。Segger J-LinkGDB サーバー、GDB サーバーとしての Qemu、PyOCD、st-util(ST-LINK デバッグプローブ用のオープンソース GDB サーバー)、ST-LINK_gdbserver (STM32CubeIDE の一部)、PE マイクロ (OpenSD...

OpenOCD のサポート

組み込みターゲットが OpenOCD(Open On-Chip Debugger)を使用したオンチップデバッグをサポートしている場合は、OpenOCD ダウンロード & 実行構成を使用します。これは、STM32CubeMX、Makefile プロジェクト、カスタムビルドターゲットの場合を含む CMake ベースのプロジェクトで機能します。必要なツール OpenOCDOpenOCD は、フラッシュプローブとリモートのとして使用されます gdbserver を。では、OpenOCD の場所が正しく検出されたかど...

実行 / デバッグ構成

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

デバッグツールウィンドウ

デバッグセッションを開始すると、デバッグツールウィンドウが開きます。このウィンドウでは、さまざまなデバッガーアクションを実行し、プログラムデータ(フレーム、スレッド、変数など)を分析できます。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。ツールウィンドウのタブを切り替えるには、とを押します。セッション:使用可能なデバッグセッションは、デバッグツールウィンドウの上部でタブに分割されています。特定の実行 /

周辺ビュー

デバッグセッション中に、.svd ファイルで定義されたレジスタとペリフェラルを監視できます。周辺ビューは、組み込み GDB サーバーと OpenOCD ダウンロード & 実行の 2 つの構成タイプで使用できます。周辺ビューの構成組み込み GDB サーバーまたは OpenOCD ダウンロード & 実行構成をセットアップし、デバッグセッションを開始します。デバッグツールウィンドウで、周辺機器タブを開きます。.svd ファイルを読み込むをクリックします。複数の .svd ファイルを一度にロードし、次のステップで...