このページでは

GDB

GDB プロセスの管理に関する設定を指定するには、Preferences >Debugger >GDB の順に移動します。

「デバッガ」環境設定の「GDB」タブ

以下の表に設定の概要を示します。

設定
GDB timeout応答のない GDB プロセスを終了させるまでのタイムアウト(秒単位)。デフォルト値の 40 秒は、ほとんどのアプリケーションで十分ですが、低速なマシンで大きなライブラリの読み込みやソースファイルのリスト表示にそれ以上の時間がかかる場合は、この値を増やしてください。
Skip known frames when steppingコードをステップインする際に、ノイズの少ないデバッグを行うために、複数のステップを 1 つのステップに圧縮します。たとえば、アトミック参照カウントのコードはスキップされ、シグナル発生に対する 1 回の「ステップイン」で、そのシグナルに関連付けられたスロットに直接移動することになります。
Show a message box when receiving a signalデバッグ中にアプリケーションが SIGSEGV などのシグナルを受信するとすぐに、メッセージボックスを表示します。
Adjust breakpoint locationsGDB では、コードが生成されていないソース行にブレークポイントを設定することができます。そのような場合、ブレークポイントは、実際にコードが生成された次のソースコード行にシフトされます。ソースコードエディタでブレークポイントマーカーを移動して、このような一時的な変更を反映させるには、このチェックボックスを選択してください。
Use dynamic object type for displayオブジェクトの動的型と静的型のどちらを表示するかを指定します。動的型を選択すると、デバッグ速度が低下する可能性があります。
Load .gdbinit file on startupデバッガの起動時に、ユーザーのデフォルトの .gdbinit ファイルを読み込みます。
Load system GDB pretty printersコンピュータにインストールされている、またはアプリケーションが使用するライブラリにリンクされているデフォルトの GDB プリティプリンタを使用します。
Use Intel style disassemblyデフォルトの AT&T スタイルの逆アセンブル表示から、Intel スタイルに切り替えます。
Use automatic symbol cacheGDB シンボルインデックスのコピーをディスク上のキャッシュに自動的に保存し、将来同じバイナリを読み込む際にそこから取得します。
Use debug info daemonシステムパッケージのデバッグ情報を自動的に取得しようとします。

追加コマンドの実行

GDB の起動後、デバッグ対象のアプリケーションが起動またはアタッチされる前、およびデバッグヘルパーが初期化される前に GDB コマンドを実行するには、Additional Startup Commands にコマンドを入力します。

GDB がリモートターゲットへのアタッチに成功した後に GDB コマンドを実行するには、Additional Attach Commands の後にコマンドを入力します。ここでは、monitor resetload など、ターゲットをさらに設定するためのコマンドを追加できます。

単純なPythonコマンドを実行するには、コマンドの先頭にpython を付けます。複数行にわたるPythonコマンドのシーケンスを実行するには、ブロックの先頭に別の行でpython を、末尾に別の行でend を記述します。任意のPythonスクリプトを実行するには、python execfile('/path/to/script.py') を使用します。

GDBの拡張設定

Extended 」グループの設定では、GDB の高度な機能や実験的な機能にアクセスできます。これらを有効にすると、デバッグ作業に悪影響を及ぼす可能性があるため、使用には注意が必要です。

設定項目
Use asynchronous mode to control the debugged processコマンドをバックグラウンド(非同期)モードで実行します。GDB は直ちにコマンドプロンプトを開き、プログラムの実行中に他のコマンドを発行できるようになります。
Use common locations for debug informationGDBの起動時に、/usr/src/debug など、デバッグ情報の保存場所への一般的なパスを追加します。
Stop when qWarning() is calledqWarning() 関数にブレークポイントを追加します。
Stop when qFatal() is calledqFatal() 関数にブレークポイントを追加します。
Stop when abort() is calledabort() 関数にブレークポイントを追加します。
Enable reverse debugging後方ステップを有効にします。この機能は GDB 側では非常に遅く、不安定です。システムコールを後方ステップする際に予期しない動作を示し、デバッグセッションが破壊される可能性が非常に高くなります。
Debug all child processesfork 実行後もすべての子プロセスのデバッグを継続します。

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

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.