クロスプラットフォーム アプリケーションのデバッグ
クロスプラットフォーム アプリケーション への移動
メモ: このトピックで説明する新しいデバッグ方法は、クロスプラットフォーム アプリケーション デバッグに対して推奨するソリューションです。 このシナリオでは、次の機能を使用します。従来の古い形式のリモート デバッグ方法もまだサポートされているため、それをオプションで使用して、クロスプラットフォーム デバッガのインストールと実行を行うこともできますが、その使い方は現在ヘルプには記述されていません。
- プラットフォーム アシスタント
- 接続プロファイル
- 特定のプラットフォーム用の SDK(ソフトウェア開発キット) - 「クロスプラットフォーム デバッグの要件」を参照。
- IDE の統合デバッガ
RAD Studio の統合デバッガを利用すると、サポートされているターゲット プラットフォームのどれをターゲットとするアプリケーションでもデバッグできます。 統合デバッガでは、一般に、Delphi アプリケーションと C++ アプリケーションの両方をサポートしていますが、C++ 64 ビット Windows プラットフォームと Delphi iOS プラットフォームは例外です。
目次 |
RAD Studio は、次のクロスプラットフォーム デバッガをサポートしています。
- Delphi 用 Embarcadero Win64 デバッガ(64 ビット版 Windows OS で動作している PC)
- C++ 用 Embarcadero Win64 デバッガ(64 ビット版 Windows OS で動作している PC)
- Embarcadero OS X デバッガ(OS X で動作している Mac)
- iOS シミュレータ用 Embarcadero iOS デバッガ(Mac)
- iOS デバイス用 Embarcadero iOS デバッガ(接続した iOS デバイス上)
ターゲット プラットフォームまたはそのターゲット プラットフォームをサポートする中継プラットフォーム上に、プラットフォーム アシスタントをインストールする際、クロスプラットフォーム デバッガも一緒にインストールされます。 システムに登録されているデバッガは、[ツール|オプション...|[デバッガ オプション]]で一覧表示できます。
クロスプラットフォーム アプリケーション デバッグのアーキテクチャ
プラットフォーム アシスタントおよび接続プロファイルは、クロスプラットフォームのターゲット システム上で、実行中のアプリケーションに対するデバッグ セッションを確立するために必須です。 プラットフォーム アシスタントを必要としない唯一のクロスプラットフォーム構成は、Win64 の開発用システムです。 そのほかに、一部のターゲット プラットフォームでは SDK も必要となります(次のセクション「#Requirements for Cross-Platform Debugging」で説明)。
クロスプラットフォーム デバッガとデバッグ対象プロセスのどちらも、ターゲット プラットフォームで実行されます。 ただし、クロスプラットフォーム デバッガは、RAD Studio IDE で、ステータスを報告したり、開発用 PC上のユーザーとやり取りをします。 つまり、クロスプラットフォーム デバッガの 1 つを使用することは、Win32 アプリケーション用の統合デバッガを使用することに非常に良く似ています。 デバッグに関する一般的な概要情報については、「デバッグの概要」を参照してください。
Win32 のリモート デバッグについて: すべてのリモート デスクトップ デバッグに対して、従来の(古い形式の)リモート デバッガを任意で使い続けることができます。 ただし、以前と同様に、ターゲット プラットフォームに手動でファイルをコピーする必要があることを忘れないでください。 古い形式のリモート デバッガを使用する際の手順については、「リモート デバッグの概要」とそれに関連する「手順」を参照してください。 古い形式のリモート デバッグ方法は、Win32 のリモート デバッグ(以前と同様)と、Win64 や Mac OS X のアプリケーションのクロスプラットフォーム デバッグの両方に使用できます。 ただし、このヘルプでは、クロスプラットフォーム デバッグに古い形式のリモート デバッガを使用する方法についてはまだ詳しく説明していません。
クロスプラットフォーム デバッグの要件
クロスプラットフォーム デバッグを実行するには、以下の要件を満たさなければなりません。
- アプリケーションにアクティブなターゲット プラットフォームがある(Win64、OS X、iOS シミュレータと iOS デバイスのいずれか、またはリモート Win32)。
- ターゲット プラットフォームに応じて、以下の要件を満たさなければなりません。
- Mac OS X および iOS プラットフォームの場合:
- プラットフォーム アシスタントが、Mac で実行されていなければなりません。
- アプリケーションには、接続プロファイルが割り当てられていなければなりません。
- 開発用システムは Mac との接続を確立していなければなりません(つまり、[接続プロファイル マネージャ]ウィンドウで[接続テスト]が成功しなければなりません)。 この接続によって、統合デバッガと配置マネージャの両方を使用できるようになります。
- 以下のプラットフォームおよびアプリケーションの種類に該当する場合には、SDK が必須です([SDK マネージャ]で設定します)。
- Mac OS X プラットフォーム用の FireMonkey C++ デスクトップ アプリケーション
- iOS デバイス プラットフォーム用の FireMonkey Delphi モバイル アプリケーション
- さらに、iOS デバイス プラットフォームの場合は:
- プロビジョニングが完了した iOS デバイスを USB ケーブルで Mac と接続しておく必要があります。
- [Ad Hoc]または[App Store] プラットフォーム向けにコンパイルされた iOS アプリケーションを、統合デバッガを使ってデバッグすることはできません。
- 64ビット Windows プラットフォームの場合:
- リモートの 64 ビット PC に接続中の場合:
- プラットフォーム アシスタントと接続プロファイルを使用しなければなりません。
- 開発用システムがリモートの 64 ビット PC との接続を確立していなければなりません(つまり、[接続プロファイル マネージャ] ウィンドウで[接続テスト]が成功しなければなりません)。 この接続によって、統合デバッガと配置マネージャの両方を使用できるようになります。
- 開発用システムが 64 ビット版 Windows オペレーティング システムで動作中の PC である場合:
- デバッグ環境がマシン内に組み込まれており、統合デバッガが自動的に実行されるため、プラットフォーム アシスタントを使用する必要はありません。
- リモート 64ビット Windows ターゲット システムの場合と同様に、プラットフォーム アシスタントと接続プロファイルの使用を、任意で選択することができます。 これを選択すると、配置マネージャを利用できます。
- リモートの 64 ビット PC に接続中の場合:
- Mac OS X および iOS プラットフォームの場合:
iOS アプリケーションのデバッグ
ターゲット プラットフォームが iOS シミュレータ および iOS デバイス のデバッグの場合、従来のデバッガ機能が一部使用できません。
詳細は、「iOS アプリケーションのデバッグ」を参照してください。
C++Builder 64 ビット Windows でのデバッグ
C++ 64 ビット Windows デバッグでは、若干デバッガ機能で使えないものがあります。
詳細については、「C++Builder 64 ビット Windows アプリケーションのデバッグ」および Readme (リリース ノート)の「デバッガに関する注意事項」を参照してください。
Mac OS X プラットフォームでデバッガに必要なファイル権限
Mac OS X 上のデバッグは特権が必要な操作であるため、適切なアクセス権を持つプロセスだけがデバッガとして動作できます。
詳細については、「Mac 上でのデバッグをサポートする権限の取得」を参照してください。
[実行]コマンドによるデバッガの起動
クロスプラットフォーム デバッグの要件がすべて満たされたら、[実行]コマンドを入力すると以下の処理が実行されます。
- ホスト PC と、接続プロファイルで指定されているターゲット マシンとの間で、必要なファイルがコピーされます。
- プラットフォームに必要な適切なデバッガでアプリケーションが実行されます。
たとえば、OS X がアクティブ ターゲット プラットフォームの場合、実行可能ファイルが Mac にコピーされます。
クロスプラットフォーム アプリケーション(OS X または Win64)のデバッグを開始するには、以下の標準の[実行]コマンドのどれを実行してもかまいません。
- 実行 > [実行] (F9) (統合デバッガでアプリケーションをコンパイルして実行)
- 実行 > [ステップ実行] (F8)
- 実行 > [トレース実行] (F7)
- 実行 > 呼び出し元に戻るまで実行 (Shift+F8)
- 実行 > カーソル位置まで実行 (F4)
[プロセスにアタッチ]や[プロセスの読み込み|ローカル](または、[プロセスの読み込み|リモート])を使用したデバッガの起動
コンパイル済みのバイナリを、プラットフォーム アシスタント サーバーが稼働しているマシン(リモート PC または Mac)上で実行、デバッグするには、以下を使用できます:
- [プロセスにアタッチ]ローカルまたはリモートで実行中のプロセスをデバッグするには、を使用します。 ここでは、プラットフォーム アシスタントおよび接続プロファイルの使用が推奨されます。
- [プロセスの読み込み|ローカル]ローカルのデバッグ対象プロセスを読み込むには、を実行します。
- [プロセスの読み込み|リモート]リモート マシンでデバッグ対象プロセスを読み込んで実行するには、を実行します。ただし、接続プロファイルに関していくつかの制限があります。 ここでは、プラットフォーム アシスタントおよび接続プロファイルの使用が推奨されます。
