このページでは

デバッガーの一般設定

すべてのデバッガに共通する一般設定を行うには、[Preferences ] > [Debugger ] > [General] の順に選択します。

デバッガーの環境設定にある「一般」タブ

デバッグビューの外観や動作のカスタマイズ、ブレークポイントの設定、ソースパスとターゲットパスのマッピングを行うことができます。

デバッグ出力は「Debugger Log」ビューで確認できます。ただし、Arch Linux などの一部の Linux ディストリビューションでは、デバッグ出力がシステムログに送信されます。この動作を上書きするには、「Force logging to console 」を選択します。これにより、デバッグ対象のアプリケーションの環境変数に `QT_LOGGING_TO_CONSOLE=1 ` が設定され、システムログへのデバッグ出力の記録が事実上防止されます。

ブレークポイント

ブレークポイントで完全な絶対パスを使用するには、Set breakpoints using a full absolute path を選択します。

GDB および CDB では、コードが生成されていないソース行にブレークポイントを設定することができます。このような場合、ブレークポイントは、実際にコードが生成された次のソースコード行にシフトされます。ソースコードエディタでブレークポイントマーカーを移動して、このような一時的な変更を反映させるには、[GDB ] > [Adjust breakpoint locations ] または [CDB ] > [Correct breakpoint location] を選択してください。

GDBをバックエンドとして使用する場合、Pythonを使用して通常のGDBブレークポイントクラスを拡張できます。「GDB 」>「Use pseudo message tracepoints 」を選択してください。

CDBをバックエンドとして使用する場合、[CDB ] > [Break on] で設定を行うことにより、C++例外、スレッドの作成や終了、アプリケーションモジュールのロードやアンロード、特定の出力など、特定のイベントでデバッガを中断するように指定できます。アクセス違反例外に対するファーストチャンスブレークを無効にするには、[Ignore first chance access violations] を選択してください。 2 回目のアクセス違反が発生した時点で、デバッガが中断します。

エラーや警告メッセージを捕捉するために、一部の関数にブレークポイントを自動的に追加できます。詳細については、「CDBおよびGDB」を参照してください。

ブレークポイントの詳細については、GDB ドキュメントの「ブレークポイント、ウォッチポイント、キャッチポイント」を参照してください。

ソースパスのマッピング

ライブラリがビルドされた場所とは異なる場所にあるソースツリーのコピーを使用する場合、デバッガがコードをステップ実行し、ソースコードを表示できるようにするには、ソースパスをターゲットパスにマッピングすることができます。

ソースパスをパッチが適用されていない Qt バージョンに自動的にマッピングするには、[Add Qt Sources ] を選択し、Qt ソースファイルの場所を参照します。

ソースパスをターゲットパスに手動でマッピングするには:

  1. Source Paths Mapping 」で、「Add 」を選択し、パスリストにエントリを追加します。
  2. Source path 」で、デバッガーによって報告された実行ファイルのデバッグ情報内のソースパスを指定します。
  3. Target path で、ローカルマシン上のソースツリーの実際の場所を指定します。

「方法:デバッグデバッグ処理、およびデバッガも参照してください

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.