マルチデバイス アプリケーションのデバッグ
マルチデバイス アプリケーション への移動
目次
マルチデバイス アプリケーション デバッグのアーキテクチャ
macOS アプリケーションのデバッグ
macOS アプリケーションをデバッグするには、次のステップを完了させます:
プロジェクト マネージャにて:
- ターゲット プラットフォーム(macOS 64 ビットや macOS ARM 64 ビット)を追加またはアクティベートします。
- 次の手順で、接続プロファイルを割り当てます: [ツール|オプション...|配置|接続プロファイル マネージャ]に移動し、次を指定します:
- プラットフォーム
- ホスト名
- ポート番号
- パスワード(省略可能)
- [ツール|オプション...|配置|SDK マネージャ] に移動し、SDK バージョンを追加します。
プラットフォーム アシスタント サーバー(PAServer)にて:
- PAServer が macOS 用リモート デバッガを起動しているのを確認してください。
iOS アプリケーションのデバッグ
iOS アプリケーションをデバッグするには、次のステップを完了させます:
プロジェクト マネージャにて:
- ターゲット プラットフォーム(iOS デバイス 64 ビット)を追加またはアクティベートします。
- 次の手順で、接続プロファイルを割り当てます: [ツール|オプション...|配置|接続プロファイルマネージャ] に移動し、次を指定します:
- プラットフォーム
- ホスト名
- ポート番号
- パスワード(省略可能)
- [ツール|オプション...|配置|SDK マネージャ] に移動し、SDK バージョンを追加します。
プラットフォーム アシスタント サーバー(PAServer)にて:
- PAServer が iOS 用リモート デバッガを起動しているのを確認してください。
- iOS アプリがプロビジョニングされ、デプロイメント時にコードが署名されていることを確認してください。
iOS デバイス上で:
- デバイスを Mac に接続します。
Android アプリケーションのデバッグ
Android アプリケーションのデバッグを RAD Studio で始める前に、Android 開発環境の準備を検討してください。
Linux アプリケーションのデバッグ
Linux アプリケーションをデバッグするには、次のステップを完了させます:
プロジェクト マネージャにて:
- ターゲット プラットフォーム(Linux 64 ビット)を追加またはアクティベートします。
- 次の手順で、接続プロファイルを割り当てます: [ツール|オプション...|配置|接続プロファイルマネージャ] に移動し、次を指定します:
- プラットフォーム
- ホスト名
- ポート番号
- パスワード(省略可能)
- [ツール|オプション...|配置|SDK マネージャ]に移動し、[SDK バージョンの追加]を選択します。
プラットフォーム アシスタント サーバー(PAServer)にて:
- PAServer が Linux 用のリモート デバッガを起動しているか確認してください。
RAD Studio 統合デバッガ
統合された RAD Studio デバッガにより、サポートされているターゲット プラットフォームを対象としたアプリケーションをデバッグすることができます。
RAD Studio では、以下のデバッガをサポートしています。これらは特定のターゲット プラットフォーム上で動作します。
- Embarcadero Windows 32 ビット デバッガ - Windows 32 ビット アプリケーション用。
- Embarcadero Windows 64 ビット デバッガ for Delphi - Windows 64 ビット Delphi アプリケーション用。
- Embarcadero Windows 64 ビット LLDB デバッガ for C++ - Windows 64 ビット C++ アプリケーション用。
- Embarcadero Linux 64 ビット デバッガ - Linux 64 ビット アプリケーション用。
- Embarcadero iOS デバイス 64 ビット デバッガ - iOS 64 ビット アプリケーション用、iOS デバイス用コンパイル済み。
- Embarcadero Android 32 ビット デバッガ - Android 32 ビット アプリケーション用、Android 32 ビット ターゲット プラットフォーム用コンパイル済み。
- Embarcadero Android 64 ビット デバッガ - Android 64 ビット アプリケーション用、Android 64 ビット ターゲット プラットフォーム用コンパイル済み。
- Embarcadero macOS 64 ビット デバッガ - macOS 64 ビット アプリケーション。
- Embarcadero macOS ARM 64 ビット デバッガ - macOS および iOS シミュレータ ARM 64 ビット アプリケーション。
ヘルプに記載されているとおり、開発環境を準備するときに、該当する Embarcadero デバッガがインストールされます。 たとえば、「macOS のアプリケーション開発」の手順に従うと、プラットフォーム アシスタント および RAD Studio macOS デバッガが、Mac 上にインストールされます。
- __lldb_apple_objc_v2_get_dynamic_class_info
- __lldb_caller_function
- __lldb_apple_objc_v2_get_shared_cache_class_info
- __lldb_caller_function
RAD Studio でのマルチデバイス デバッグの要件
- macOS 64 ビット、または、iOS デバイス - 64 ビット のいずれかのターゲット プラットフォームで稼働するアプリケーションの場合、プラットフォーム アシスタントおよび接続プロファイルが、デバッグ セッションの確立のために必要となります。
- Android ターゲット プラットフォームとインシステム Win64 ターゲット プラットフォームには、プラットフォーム アシスタントや接続プロファイルはどちらも必要ありません。
- 一部のターゲット プラットフォームでは、IDE で SDK を追加することが必要です(次のセクション「マルチデバイス デバッグの要件」で説明)。
通常、デバッガとデバッグ対象プロセスは、どちらもターゲット プラットフォームで実行されます。これは、iOS デバイスと Android デバイスには当てはまります。 ただし、どのような場合でもデバッガは、RAD Studio IDE で、ステータスを報告したり、開発用 PC上のユーザーとやり取りをします。つまり、マルチデバイス デバッガの 1 つを使用することは、Win32 アプリケーション用の統合デバッガを使用することに非常に良く似ています。デバッグに関する共通の大まかな情報については、「デバッグの概要」を参照してください。
マルチデバイス デバッグを実行するには、以下の要件を満たさなければなりません。
- アプリケーションのターゲット プラットフォームがアクティブになっていなければなりません。
- 64 ビット Windows(開発用 PC が 32 ビット Windows)
- macOS
- iOS
- Android(Android デバイス)
- リモートの 32 ビットまたは 64 ビット Windows
- ターゲット プラットフォームに応じて、以下の要件を満たさなければなりません。
- macOS および iOS プラットフォームの場合:
- プラットフォーム アシスタントが Mac 上で動作している必要があります。
- アプリケーションはプロビジョニングやコード署名がなされ、接続プロファイルが関連付けられている必要があります。
- メモ: macOS アプリケーションに対してプロフィジョニングやコード署名をする必要はありません。
- 開発用システムは Mac との接続を確立していなければなりません(つまり、[接続プロファイル マネージャ]ウィンドウで[接続テスト]が成功しなければなりません)。
- この接続によって、統合デバッガと配置マネージャの両方を使用できるようになります。
- さらに、iOS デバイス プラットフォームの場合、プロビジョニングされた iOS デバイスを USB ケーブルで Mac と接続しておく必要があります。
- メモ: 統合デバッガを使用して、[アプリケーション ストア] プラットフォーム構成でコンパイルされた iOS アプリケーションをデバッグすることはできません。
- 32 ビット版 Windows プラットフォームの場合:
- デバッグ環境がマシン内に組み込まれており、統合デバッガが自動的に実行されるため、プラットフォーム アシスタントを使用する必要はありません。ただし、32 ビット Windows アプリケーションのリモート デバッグを行う場合、[プロジェクト|オプション...|Delphi コンパイラ|リンク]の[リモート デバッグ シンボルを含める]オプションを
True
に設定する必要があります。
- デバッグ環境がマシン内に組み込まれており、統合デバッガが自動的に実行されるため、プラットフォーム アシスタントを使用する必要はありません。ただし、32 ビット Windows アプリケーションのリモート デバッグを行う場合、[プロジェクト|オプション...|Delphi コンパイラ|リンク]の[リモート デバッグ シンボルを含める]オプションを
- 64 ビット版 Windows プラットフォームの場合:
- リモートの 64 ビット PC に接続中の場合:
- プラットフォーム アシスタントと接続プロファイルを使用しなければなりません。
- 開発用システムがリモートの 64 ビット PC との接続を確立していなければなりません(つまり、[接続プロファイル マネージャ]ウィンドウで[接続テスト]が成功しなければなりません)。この接続によって、統合デバッガと配置マネージャの両方を使用できるようになります。
- 開発用システムが 64 ビット版 Windows オペレーティング システムで動作中の PC である場合:
- デバッグ環境がマシン内に組み込まれており、統合デバッガが自動的に実行されるため、プラットフォーム アシスタントを使用する必要はありません。
- ただし、リモートの 64 ビット版 Windows ターゲット システムの場合と同様に、プラットフォーム アシスタントと接続プロファイルの使用をオプションで選択できます。これを選択すると、配置マネージャを利用できます。
- リモートの 64 ビット PC に接続中の場合:
- 以下のプラットフォームおよびアプリケーションの種類に該当する場合には、SDK が必須です([SDK マネージャ]で設定します)。
- iOS デバイス - 64 ビット プラットフォーム用 FireMonkey Delphi マルチデバイス アプリケーション
- Android プラットフォーム向けの FireMonkey Delphi マルチデバイス アプリケーション
- macOS および iOS プラットフォームの場合:
C++Builder 64 ビット Windows でのデバッグ
C++ 64 ビット Windows アプリケーションのデバッグの場合は、一部のデバッガ機能が使用できません。
詳細は、「C++Builder 64 ビット Windows アプリケーションのデバッグ」を参照してください。
[実行]コマンドによるデバッガの起動
マルチデバイス デバッグの要件がすべて満たされたら、[実行]コマンドを入力すると以下の処理が実行されます。
- ホスト PC と、接続プロファイルで指定されているターゲット マシンとの間で、必要なファイルがコピーされます。
- プラットフォームに必要な適切なデバッガでアプリケーションが実行されます。
たとえば、macOS がアクティブ ターゲット プラットフォームの場合、実行可能は Mac にコピーされます。
マルチデバイス アプリケーション(macOS または Win64)のデバッグを開始するには、以下の標準の[実行]コマンドのどれを実行してもかまいません。
- [実行|実行](F9)(統合デバッガでアプリケーションをコンパイルして実行)
- [実行|ステップ実行](F8)
- [実行|トレース実行](F7)
- [実行|呼び出し元に戻るまで実行](Shift+F8)
- [実行|カーソル位置まで実行](F4)
- メモ: [カーソル位置まで実行]を使ったデバッガの起動は Android プラットフォームではサポートされていません。
[プロセスにアタッチ]や[プロセスの読み込み|リモート]を使用したデバッガの起動
コンパイル済みのバイナリをプラットフォーム アシスタント サーバーが稼働しているマシン(リモート PC または Mac)上で実行してデバッグするには、以下のコマンドを使用できます。
- ローカルまたはリモートで実行中のプロセスをデバッグするには、[プロセスにアタッチ]を使用します。ここでは、プラットフォーム アシスタントと接続プロファイルを使用することをお勧めします。[プロセスにアタッチ]ダイアログ ボックスの説明で示されているとおり、一部のプラットフォームではサポートされていません。
- メモ: 実行中のプロセスへのアタッチメントは、Embarcadero Linux 64 ビット デバッガ、Embarcadero iOS デバイス 64 ビット デバッガ、Embarcadero Android 32 ビット デバッガ、Embarcadero Android 64 ビット デバッガ、Embarcadero macOS 64 ビット デバッガ、Embarcadero macOS ARM 64 ビット デバッガ ではサポートされていません。
- ローカルのデバッグ対象プロセスを読み込むには、[プロセスの読み込み|ローカル]を実行します。
- メモ: [プロセスの読み込み|ローカル]は、Embarcadero Linux 64 ビット デバッガ、Embarcadero iOS Device 64 ビット デバッガ、Embarcadero macOS 64 ビット デバッガ、Embarcadero macOS ARM 64 ビット デバッガ ではサポートされていません。
- リモートのマシンでデバッグ対象プロセスを読み込んで実行するには、[プロセスの読み込み|リモート]を実行します。ただし、接続プロファイルに関していくつかの制限があります。[プロセスの読み込み|リモート]ダイアログ ボックスの説明で示されているとおり、一部のプラットフォームではサポートされていません。
- メモ: [プロセスの読み込み|リモート]は、Embarcadero Android 32 ビット デバッガ、Embarcadero Android 64 ビット デバッガではサポートされていません。
- ここでは、プラットフォーム アシスタントと接続プロファイルを使用することをお勧めします。
[プロセスの読み込み]でのタイミングの問題
実行直後にクラッシュする macOS アプリケーションを[プロセスの読み込み]を使ってデバッグする際に問題がある場合は、[読み込み後]の選択肢の中から[実行しない]か[プログラム エントリ ポイントまで実行する]のどちらかのオプションを選択してください。 このどちらのオプションを指定しても、アプリケーションが実行されデバッグ イベントをヒットする時点と、デバッガがセットアップされイベントを処理する用意ができる時点とのタイミングの問題を解決できます。 これらのタイミングの問題は、デバッガがハングする原因となるおそれがあります。