マルチデバイス アプリケーションのデバッグ

提供: RAD Studio
移動先: 案内検索

マルチデバイス アプリケーション への移動

マルチデバイス アプリケーション デバッグのアーキテクチャ

macOS アプリケーションのデバッグ

macOS アプリケーションをデバッグするには、次のステップを検討します: プロジェクト マネージャにて:

  1. ターゲット プラットフォーム(macOS 64 ビットや macOS ARM 64 ビット)を追加またはアクティベートします。
  2. 次の手順で、接続プロファイルを割り当てます: [ツール|オプション...|配置|接続プロファイルマネージャ に移動し、次を指定します:
    • ターゲット プラットフォーム
    • ホスト名または IP アドレス
    • ポート番号
    • その他のプロファイル オプション
  3. SDK を追加します。

プラットフォーム アシスタント サーバー(PAServer)では、次の点を確認してください:

  1. PAServer が macOS 用リモート デバッガを起動している
メモ: macOS プラットフォームでデバッガに必要なファイル権限 macOS 上のデバッグは特権が必要な操作であるため、適切なアクセス権を持つプロセスだけがデバッガとして動作できます。 詳細については、「Mac 上でのデバッグをサポートする権限の取得」を参照してください。 macOS アプリケーション開発についての詳細は、「macOS のアプリケーション開発」を参照してください。

iOS アプリケーションのデバッグ

iOS アプリケーションをデバッグするには、次のステップを検討します:

プロジェクト マネージャにて:

  1. ターゲット プラットフォーム(iOS 64 ビット)を追加またはアクティベートします。
  2. 次の手順で、接続プロファイルを割り当てます: [ツール|オプション...|配置|接続プロファイルマネージャ に移動し、次を指定します:
    • ターゲット プラットフォーム
    • ホスト名または IP アドレス
    • ポート番号
    • その他のプロファイル オプション
  3. [ツール|オプション...|配置|SDK マネージャ に移動し、SDK バージョンを追加します。

プラットフォーム アシスタント サーバー(PAServer)では、次の点を確認してください:

  1. PAServer が iOS 用リモート デバッガを起動していること
  2. iOS アプリがプロビジョニングされ、デプロイメント時にコードが署名されていること

iOS デバイス上で:

  1. デバイスを Mac に接続します。
メモ: iOS デバイス - 64 ビット ターゲット プラットフォームでデバッグする場合、従来のデバッグ機能が 2、3、利用できないものもあります。 詳細については、「iOS アプリケーションのデバッグ」を参照してください。 iOS アプリケーション開発についての詳細は、「iOS モバイル アプリケーション開発」を参照してください。

Android アプリケーションのデバッグ

Android アプリケーションのデバッグを RAD Studio で始める前に、Android 開発環境の準備を検討してください。

RAD Studio 統合デバッガ

統合された RAD Studio デバッガにより、サポートされているターゲット プラットフォームを対象としたアプリケーションをデバッグすることができます。

RAD Studio では、以下のデバッガをサポートしています。これらは特定のターゲット プラットフォーム上で動作します。

  • Embarcadero Windows 32 ビット デバッガ
  • Delphi 用 Embarcadero Windows 64 ビット デバッガ(64 ビット版 Windows OS で動作している PC)
  • C++ 用 Embarcadero Windows 64 ビット LLDB デバッガ(64 ビット版 Windows OS で動作している PC)
  • Embarcadero macOS 64 ビット デバッガ(64 ビット版 macOS で動作している Intel Mac)
  • Embarcadero macOS ARM 64 ビット デバッガ(64 ビット版 macOS で動作している ARM Mac)
  • Embarcadero Linux 64 ビット デバッガ
  • Embarcadero iOS デバイス 64 ビット デバッガ(接続された 64 ビット iOS デバイス)
  • Embarcadero iOS シミュレータ ARM 64 ビット デバッガ(64 ビット macOS で動作している ARM Mac)
  • Embarcadero Android デバイス 32 ビット デバッガ(接続された 32 ビット Android デバイス)
  • Embarcadero Android デバイス 64 ビット デバッガ(接続された 64 ビット Android デバイス)

ヘルプに記載されているとおり、開発環境を準備するときに、該当する Embarcadero デバッガがインストールされます。 たとえば、「macOS のアプリケーション開発」の手順に従うと、プラットフォーム アシスタントおよび macOS デバッガが Mac にインストールされます。 同様に、「iOS モバイル アプリケーション開発」の手順に従うと、PAServer と RAD Studio iOS デバッガが、ターゲット プラットフォーム(iOS)をサポートする中間プラットフォームである Mac にインストールされます。 システムに登録されている Embarcadero デバッガは、[ツール|オプション...|デバッガ オプション に一覧されています。

メモ: 追加共有ライブラリは iOS64 デバッガに読み込まれます。これらの共有ライブラリはデバッガによって制御されており、無視しても構いません。 そのようなライブラリには次のものがあります:
  • __lldb_apple_objc_v2_get_dynamic_class_info
  • __lldb_caller_function
  • __lldb_apple_objc_v2_get_shared_cache_class_info
  • __lldb_caller_function
メモ: iOS64 デバッガでは、さらなるスレッドが実行されていることに気づいたかもしれません。 これらの追加スレッドはデバッガによって制御されており、無視しても構いません。
メモ: このトピックに記載されている新しいデバッグ方法は、macOS、iOS、Android、64 ビット Windows(32 ビット Windows 開発システムからアクセスする)向けのマルチデバイス アプリケーション デバッグの推奨方法です。 その場合、特定のマルチデバイス デバッガ(ターゲット プラットフォーム上で動作)と IDE に統合されたデバッガとを使用することになります。 古い形式のリモート デバッグ方法もまだサポートされているため、その方法でもマルチデバイス デバッガをインストールし実行できますが、マルチデバイス アプリケーション向けの古い形式のリモート デバッグ方法は現在ヘルプには記述されていません。
メモ: リモート Win32 デバッグでは、すべてのリモート デスクトップ デバッグに対して、従来の(古い形式の)リモート デバッガを任意で使い続けることができます。 ただし、以前と同様に、ターゲット プラットフォームに手動でファイルをコピーする必要があることを忘れないでください。 古い形式のリモート デバッガを使用する際の手順については、「リモート デバッグの概要」とそれに関連する「手順」を参照してください。 古い形式のリモート デバッグ方法は、Win32 のリモート デバッグ(以前と同様)と、Win64 や macOS のアプリケーションのデバッグの両方に使用できます。 ただし、このヘルプでは、マルチデバイス デバッグに古い形式のリモート デバッガを使用する方法についてはまだ詳しく説明していません。
メモ: 32 ビット Android デバイス上で 64 ビット Android アプリケーションを起動しようとしてる場合は、非互換性を通知するエラー メッセージの代わりに、次のメッセージが表示されます: LLDB カーネルを開始できません: ‘./lldb-server[17]: 構文エラー: unexpected ‘)’.
メモ: デバッグの問題が発生したときには、サポート チームがデバッガ ログを要求することがあるかもしれません。RAD Studio デバッガに対するログの有効化をする方法について参照してください。

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 プラットフォームの場合:
      メモ: macOS アプリケーションに対してプロフィジョニングやコード署名をする必要はありません。
      • 開発用システムは Mac との接続を確立していなければなりません(つまり、[接続プロファイル マネージャ]ウィンドウで[接続テスト]が成功しなければなりません)。
        この接続によって、統合デバッガと配置マネージャの両方を使用できるようになります。
      • さらに、iOS デバイス プラットフォームの場合、プロビジョニングされた iOS デバイスを USB ケーブルで Mac と接続しておく必要があります。
      メモ: 統合デバッガを使用して、[アプリケーション ストア] プラットフォーム構成でコンパイルされた iOS アプリケーションをデバッグすることはできません。
    • 32 ビット版 Windows プラットフォームの場合:
      • デバッグ環境がマシン内に組み込まれており、統合デバッガが自動的に実行されるため、プラットフォーム アシスタントを使用する必要はありません。ただし、32 ビット Windows アプリケーションのリモート デバッグを行う場合、[プロジェクト|オプション...|Delphi コンパイラ|リンク][リモート デバッグ シンボルを含める]オプションを True に設定する必要があります。
    • 64 ビット版 Windows プラットフォームの場合:
      • リモートの 64 ビット PC に接続中の場合:
        • プラットフォーム アシスタントと接続プロファイルを使用しなければなりません。
        • 開発用システムがリモートの 64 ビット PC との接続を確立していなければなりません(つまり、[接続プロファイル マネージャ]ウィンドウで[接続テスト]が成功しなければなりません)。この接続によって、統合デバッガと配置マネージャの両方を使用できるようになります。
      • 開発用システムが 64 ビット版 Windows オペレーティング システムで動作中の PC である場合:
        • デバッグ環境がマシン内に組み込まれており、統合デバッガが自動的に実行されるため、プラットフォーム アシスタントを使用する必要はありません。
        • ただし、リモートの 64 ビット版 Windows ターゲット システムの場合と同様に、プラットフォーム アシスタントと接続プロファイルの使用をオプションで選択できます。これを選択すると、配置マネージャを利用できます。
    • 以下のプラットフォームおよびアプリケーションの種類に該当する場合には、SDK が必須です([SDK マネージャ]で設定します)。
      • iOS デバイス - 64 ビット プラットフォーム用 FireMonkey Delphi マルチデバイス アプリケーション
      • Android プラットフォーム向けの FireMonkey Delphi マルチデバイス アプリケーション

C++Builder 64 ビット Windows でのデバッグ

C++ 64 ビット Windows アプリケーションのデバッグの場合は、一部のデバッガ機能が使用できません。

詳細は、「C++Builder 64 ビット Windows アプリケーションのデバッグ」を参照してください。

[実行]コマンドによるデバッガの起動

マルチデバイス デバッグの要件がすべて満たされたら、[実行]コマンドを入力すると以下の処理が実行されます。

  • ホスト PC と、接続プロファイルで指定されているターゲット マシンとの間で、必要なファイルがコピーされます。
  • プラットフォームに必要な適切なデバッガでアプリケーションが実行されます。

たとえば、macOS がアクティブ ターゲット プラットフォームの場合、実行可能は Mac にコピーされます。

マルチデバイス アプリケーション(macOS または Win64)のデバッグを開始するには、以下の標準の[実行]コマンドのどれを実行してもかまいません。

[プロセスにアタッチ]や[プロセスの読み込み|リモート]を使用したデバッガの起動

コンパイル済みのバイナリをプラットフォーム アシスタント サーバーが稼働しているマシン(リモート PC または Mac)上で実行してデバッグするには、以下のコマンドを使用できます。

[プロセスの読み込み]でのタイミングの問題

実行直後にクラッシュする macOS アプリケーションを[プロセスの読み込み]を使ってデバッグする際に問題がある場合は、[読み込み後]の選択肢の中から[実行しない][プログラム エントリ ポイントまで実行する]のどちらかのオプションを選択してください。 このどちらのオプションを指定しても、アプリケーションが実行されデバッグ イベントをヒットする時点と、デバッガがセットアップされイベントを処理する用意ができる時点とのタイミングの問題を解決できます。 これらのタイミングの問題は、デバッガがハングする原因となるおそれがあります。

関連項目