このページでは

基本的なQtオブジェクトの検査

デバッガの最も強力な機能は、Locals およびExpressions ビューが、Qtの基本オブジェクトに属するデータを表示する点にあります。例えば、QObject の場合、あるプライベートデータ構造体へのポインタの代わりに、子オブジェクト、シグナル、スロットのリストが表示されます。

同様に、Qt Creator のデバッガでは、多数のポインタや整数を表示する代わりに、QHashQMap の内容が整理された形で表示されます。また、デバッガはQFileInfo のアクセスデータや、QVariant実際のコンテンツも表示します。

値の表示形式を変更する

Locals またはExpressions ビューで、コンテキストメニューからChange Value Display Format を選択すると、値の表示形式を変更できます。利用可能なオプションは、現在の項目の型によって異なり、デバッグヘルパーによって提供されます。

構造体をC言語風のシンプルな形式で強制表示するには、[Preferences ] > [Debugger ] > [Locals & Expressions] の順に選択し、[Use Debugging Helpers] のチェックを外します。

デバッガーの環境設定にある「ローカル変数と式」タブ

この設定でも Python スクリプトは使用されますが、より基本的な出力が生成されます。単一のオブジェクト、または特定の型のすべてのオブジェクトに対してプレーンな表示を強制するには、Locals またはExpressions ビューのコンテキストメニューから、Change Value Display Format >Raw を選択します。

通常、QByteArraystd::string などの文字列のようなデータのエンコーディングを変更したり、フルエディタウィンドウでデータを表示したりすることができます。

QMapQHashstd::map などのマップのようなデータについては、コンパクトなオプションを選択できます。このオプションでは、Name 列をキーとして使用し、数値や短い文字列などの短いキーを持つコンテナを簡潔に表示します。たとえば、QMap のすべての値を展開するには、Change Value Display Format >Compact を選択します。

文字列の場合、「Change Value Display Format 」>「Separate Window 」を選択すると、ビュー上の単一の行項目ではなく、テキストエディタ内で文字列の内容を確認できます。QPixmap の場合、コードをステップ実行する際に、ピクセル単位でピクマップが生成される様子を確認できます。

変数の値の変更

Locals およびExpressions ビューを使用すると、アプリケーションが中断されている際に、intfloatQStringstd::string などの単純なデータ型の変数の内容を変更できます。これを行うには、Value 列を選択し、インプレースエディタで値を修正して、Enterキーを押します。

QVector またはstd::vector の値を完全に変更するには、すべての値をコンマで区切って、メインエントリの「Value 」列に入力します。ただし、Qt Creator は変数のメモリ再割り当てを行わないため、新しい内容が元のメモリ領域に収まり、かつデバッガが値の変更をサポートしている場合にのみ、変更が適用されます。

シグナル・スロットの接続

クラスのインスタンスがQObject から派生している場合、Qt XMLのシグナルとスロットの仕組みを使用して、このオブジェクトのスロットに接続されている他のすべてのオブジェクトを見つけることができます。「Preferences 」 > 「Debugger 」 > 「Locals & Expressions 」 > 「Use Debugging Helpers 」に移動します。

Locals 」ビューで、オブジェクトのエントリを展開し、「slots」サブ項目内のスロットを開きます。このビューには、このスロットに接続されているオブジェクトが、スロットの子として表示されます。同様に、シグナルの子も表示できます。

低レベルのデータ

データの破損により Qt オブジェクトをデバッグできない場合は、デバッグヘルパーを無効にして、低レベルの構造体を表示させることができます。

デバッグヘルパーを無効にするには、Preferences >Debugger >Locals & Expressions で「Use Debugging Helpers 」のチェックを外します。

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

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.