CLion 2023.3 ヘルプ

逆アセンブルされたコードをデバッグする

デバッグセッション中に、逆アセンブルされたコードを開くことができます

  • ソースが利用可能な場合、任意のフレームに対してオンデマンド

  • ソースが利用できないときに強制的にそこに踏み込むこと

フレームの分解ビューを開く

  1. デバッグツールウィンドウで目的のフレームを右クリックし、逆アセンブルを選択します。

    Disasm on demand action
  2. 逆アセンブリビューがソースコードと並んで開きます。

    Disasm on demand example

    開くと、分解ビューは現在選択されているフレームと同期したままになります。フレームが切り替わると、エディターと逆アセンブリビューの両方が実行ポイントまでスクロールします。

ソースが利用できないときに逆アセンブリビューを開く

  • コードをデバッグするときは、ステップイン F7 の代わりに強制ステップイン the Force Step into icon Alt+Shift+F7 コマンドを使用してください。ステップインは、ソースコードのない関数ではステップオーバーのように機能します。

    CLion がデバッグ中にソースファイルを見つけられない場合、逆アセンブリビューが自動的に開きます。これは、たとえば、偽の CMake プロジェクトを使用してカスタム実行可能ファイルをデバッグする場合、またはプロジェクト内にソースコードがない状態で CI 上にビルドされたライブラリがある場合に発生する可能性があります。

    ソースを明示的に指定するには、通知でファイルの選択をクリックします。

    Selecting source file in disassembly
  • デバッグツールウィンドウで目的のフレームに移動します。

  • デバッグ情報を提供しないアタッチされたプロセスのデバッグセッションを起動すると、逆アセンブリも自動的に開きます。

分解の手順

逆アセンブリビューでは、通常のステップアクションを使用してコードを調査できます。

Disassembly view

実行ポイントの設定アクションを使用して、逆アセンブリのコードの任意の行に移動することもできます。

Set execution point in disassembly

    分解のブレークポイント

    ソースコードで行うのと同じ方法で、逆アセンブルでブレークポイントを設定できます。これらのブレークポイントは、アドレスブレークポイントと呼ばれます。

    ブレークポイントを右クリックして、使用可能なオプションを表示します。

    Address breakpoint context menu

    さらにをクリックするか、Ctrl+Shift+F8 を押して、ブレークポイントダイアログのアドレスブレークポイントを編集します。

    Address breakpoints properties

      アドレスにジャンプ

      ジャンプフィールドを使用して、目的のコード行に移動します。このフィールドには、アドレス、またはアドレスに評価できる任意の式を入力できます。

      式にレジスタを含める必要がある場合は、その名前を $GDB 表記(英語))で始めます。

      Refferring to a register in the Go to field of the disassembly view

        逆アセンブリで x86 構文を使用する

        • Options メニューを使用して、x86 アセンブリ (Intel) 構文に切り替えます。

          the Use Intel Syntax and Show Raw Output options

          このオプションはファイルのアセンブリビューでも利用できます。構成は独立しています。逆アセンブリビューの構成はアセンブリビューに影響を与えず、その逆も同様です。

        アセンブリファイルでの構文のハイライト

        構文のハイライトは、AT&T(英語) アセンブリコードで使用できます。

        デフォルトでは、.s および .asm ファイルはアセンブリコードファイルとして認識されますが、他のタイプを構成できます。

        1. 設定 | エディター | ファイルタイプに移動します。

        2. 認識されるファイルタイプのリストでアセンブリ言語を選択し、リストに新しい拡張子を追加します。

        関連ページ:

        ファイルのアセンブリビュー

        CLion では、デバッグセッションを開始せずに、基になるアセンブリコードを探索できます。ファイルのアセンブリを開く CLion がコンパイラー設定を取得する実行 / デバッグ構成を選択します。エディターでファイルを開きます。その内部を右クリックし、コンテキストメニューからアセンブリを表示するを選択します。あるいは、を押してアクションの検索ダイアログを開き、アセンブリを表示すると入力し始めて、リストからアクションを選択します。アセンブリを表示するを呼び出すと、CLion は選択した構成のコンパイ...

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

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

        任意の実行可能ファイルをデバッグする

        CLion を使用して、任意のビルドシステムを使用して他の場所でビルドされた実行可能ファイルをデバッグできます。この記事では、アプリケーションに応じて選択できる 3 つのオプションについて説明します。どちらを使用しても、すべての CLion デバッグ機能がコードで完全に利用可能になります。要件は、バイナリにデバッグシンボルが含まれていて、ソースファイルが手元にあることです。オプション 1: 実行中のプロセスにアタッチする:最も簡単な解決策は、デバッガーをすでに実行中のプロセスに接続することです...

        中断されたプログラムを調べる

        デバッガーセッションの開始後、デバッグツールウィンドウが表示され、次のいずれかが発生するまでプログラムが正常に実行されます。ブレークポイントがヒットしました、プログラムを手動で一時停止する、その後、プログラムは中断され、現在の状態を調べたり、実行を制御したり、実行時にさまざまなシナリオをテストしたりできます。フレームとスレッド:プログラムの状態はフレームで表されます。プログラムが中断されると、現在のフレームスタックがフレームペインに表示されます。フレームはアクティブなメソッドまたは関数呼び出し

        プロセスに接続

        CLion は、ローカルプロセスとリモートプロセスの両方にデバッガーを接続する方法を提供します。C/C++ アプリケーションの場合、Windows では GDB または MSVC LLDB、macOS では LLDB、Linux では GDB と LLDB の両方を使用してプロセスにアタッチできます。該当する場合は、他の言語のデバッガー (Python デバッガーなど) も使用できます。Ubuntu の前提条件 Ubuntu およびその他の Linux ディストリビューションでは、初めてプロセスに...

        ステップスルー

        CLion は、さまざまなデバッグ戦略のための一連のステップアクションを提供します(たとえば、次の行に直接移動する必要があるか、途中で呼び出された関数を入力する必要があるかなど)。ステップアクションは、デバッガーウィンドウのツールバーとメニューにあります。ステップオーバー:現在の行に関数呼び出しが含まれている場合でも、現在の行をステップオーバーして、次の行に移動します。呼び出しはスキップされ、発信者の次の行に直接移動します。ステップオーバーボタンをクリックするか、を押します。スキップされたメ