このページでは

GDBによるリモート・デバッグ

リモート・マシンまたはコンテナに GDBserver がすでにインストールされており、Run ボタン(またはCtrl+R)を選択することでアプリケーションのリモート実行がすでに設定され、動作している一般的なケースでは、Debug ボタン(またはF5)を選択することでリモート・デバッグを開始できます。

この場合、Qt Creator は、リモート・マシン上のデバッグ・サーバーとアプリケーション、および開発ホスト上の実際のデバッガを、正しい順序で自動的に起動して接続します。

これが望ましい方法です。

この自動セットアップの要件を満たしていない場合でも、リモートマシンで GDB サーバー(または GDB シリアルプロトコルを使用する互換性のあるプローブ)を実行できる場合は、Qt Creator を使用してアプリケーションをデバッグできます。

アプリケーションの実行、リモート・マシンへの SSH アクセスが可能

リモートマシン上で既に実行されているアプリケーションにアタッチし、ローカルマシンホストから SSH 経由でデバッグサーバーを起動したい場合は、Debug >Start Debugging >Attach to running applications にアクセスしてください。

アプリケーションは実行されていないが、リモートマシンへのターミナルアクセスは可能

ローカル・マシンから SSH 経由でデバッグ・サーバーを起動できない場合、デバッグ・サーバーを起動する代 替手段について、デバイスのマニュアルを確認してください。

リモート・マシンへのターミナル・アクセスが可能で、そこに GDB サーバーがインス トールされていれば、ポート番号と実行ファイルを渡すことで、実行ファイルをリモー ト・マシンに手動で転送し、gdbserver を起動できます:

gdbserver :1234 /path/to/executable

すると通常、応答が返ってくる:

Process /path/to/executable created; pid = 5159
Listening on port 1234

Qt Creator

  1. Debug >Start Debugging >Attach to Running Debug Server にアクセスする。

    実行中のデバッグサーバーにアタッチダイアログ

  2. Kit で、プロジェクトのビルドに使用するビルド・実行キットを選択する。
  3. Server port に、リモート・マシンの名前と使用するポート番号を入力する。
  4. Local executable で、ローカル・マシン上のアプリケーション実行可能ファイルへのパスを指定します。
  5. Command line arguments では、実行ファイルに渡すコマンド行引数を指定します。
  6. Working directory では、作業ディレクトリを指定します。デフォルトはビルド結果のディレクトリです。
  7. コンソール・アプリケーションの場合は、Run in terminal を選択します。
  8. メイン関数でデバッガを停止するには、Break at "main" を選択します。
  9. target extended-remote mode で接続を作成するには、Use target extended-remote to connect を選択します。このモードでは、デバッ グ対象のアプリケーションが終了するか、アプリケーションから切り離しても、デバッガーは ターゲットに接続されたままになります。アプリケーションを再実行したり、実行中のアプリケー ションにアタッチしたり、ターゲット固有のモニター・コマンドを使用したりできます。例えば、GDB は--once オプションを使用して起動されない限り終了しませんが、monitor exit コマンドを使用することで終了させることができます。
  10. Override SysRoot では、デフォルトのsysroot の代わりに使用するsysroot へのパスを指定する。
  11. Init commands には、ターゲットへの接続が確立された直後に実行するコマンドを入力する。
  12. Reset commands には、ターゲットへの接続をリセットするときに実行するコマンドを入力します。
  13. Debug information では、デバッグ情報を格納する場所を指定します。空のパスは使用できません。
  14. Override server channel では、シリアル回線やカスタム・ポートなど、使用する通信チャネルを指定します。
  15. Recent で、使用する最近の構成を選択します。
  16. デバッグを開始するには、OK を選択します。

デフォルトでは、応答しない GDB プロセスは 40 秒後に終了します。GDB timeout でタイムアウトを増やすには、Preferences>Debugger >GDB に進みます。

GDBのtarget extended-remote モードでの接続の詳細については、「GDBによるデバッグ:リモート・ターゲットへの接続」を参照してください。

アプリケーションが実行中で、リモート・マシンへのターミナル・アクセスとgdbserverが利用可能である。

このケースは、gdbserver の起動方法が異なる以外は、前のセクションとほぼ同じです:

gdbserver --attach :1234 <PID of running application>

SSHポートフォワーディングの使用

GDB サーバー・ポートを公開できないリモート・ターゲットでデバッグを有効にするには、SSH トンネリングを使用してリモート・ポートをローカル・ポートにマッピングします。Qt Creator はローカル・ポートとリモート・ポートを自動的に検出します。

SSH ポート転送をオンにするには

  1. Preferences>Devices に進みます。

    デバイス環境設定のリモートLinuxデバイス

  2. Device で、Remote Linux Device を選択します。
  3. Use SSH port forwarding for debugging を選択します。
  4. OK を選択します。

How To: デバッグ」、「How To: リモート Linux 用の開発」、「GDB」、「デバッグ」、「デバッガ」、「キット」も参照してください

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.