web-dev-qa-db-ja.com

QtクラスにデバッグするためのQtCreatorのセットアップ

Qtクラスにデバッグできるような方法でQtCreator(3.0)をセットアップしたいと思います。そこで、対応するsrcコード( http://gitorious.org/qt/qt5 )をダウンロードして、ディレクトリ(例:c:\Qt5\src)。

それから私は自分のプロジェクトを持っています。 Qtのソースコードパスをどこに設定する必要がありますか(c:\Qt5\src)、コードをデバッグできますが、必要に応じてQtクラスにデバッグすることもできます。

-編集:Pavelのコメント-

Pavelは良いヒントを与えました:しかし、私はQt/QtCreatorのプリコンパイルされたバージョンを使用しています。だから私は基本的にソースからコンパイルする必要のないソリューションを探しています。それにもかかわらず、有用なヒント。ありがとう。

21
Horst Walter

ビルド済みバージョンを使用している場合は、 http://doc.qt.io/qtcreator/creator-debugger-engines.html で説明されているようにソースコードの場所を再マップするだけです。

ソースパスのマッピング

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

  • [ツール]> [オプション]> [デバッガー]> [一般]> [追加]を選択します。
  • [ソースパス]フィールドで、デバッガーによって報告された実行可能ファイルのデバッグ情報にソースパスを指定します。
  • [ターゲットパス]フィールドで、ローカルマシン上のソースツリーの実際の場所を指定します。

デバッガーによって報告された実行可能ファイルのデバッグ情報のソースパス」を取得するには、「スタック内のツールチップを使用する」をアクティブにします。 -スタックビューを右クリックし、特定の関数呼び出しの上にマウスを移動して、[デバッグ時に表示]オプションを選択します。

17
JLM

ツールチップを調べると、/Users/qt/workへの参照が表示され、Macで展開されたデバッグシンボルがそこを指しています。もちろん、これらの人々はあなたに企業を購入してほしいので、これは文書化されていません。

/Users/qt/workディレクトリを(rootとして)作成し、qtという名前のソースディレクトリへのソフトリンクを作成すると、すべてが機能します。ソースから何かを構築する必要はありません(Macでは数十ギグが無駄になります)。プラグインに関する同じ考慮事項

例:

Sudo -s
mkdir /Users/qt
cd /Users/qt
mkdir work
cd work
ln -s /Users/your_user_name/Qt/your_qt_release/Src qt

すべてが機能します。ここではソースマッピングが失敗したため、そのままにしておきます。お役に立てれば

6
user962247

独自のQtをコンパイルする必要があります。これがこの機能を取得する唯一の方法です。プリコンパイル済みのものも含め、任意のIDEを自由に使用できます。自己コンパイル済みのQtをキットとしてQtCreatorに登録するだけです。

プリコンパイルされたQtには、デバッグ情報を含むファイルは付属していません。プリコンパイルされたQtにデバッグしようとすると、無制限の時間を無駄にする可能性があります。必要なデバッグ情報を含むオブジェクトが出荷されていないため、Unixプラットフォームでは不可能です。同じ理由で、Windowsでも使用できません。MSVCビルドの場合は.pdbファイルがなく、mingwビルドの場合はオブジェクトファイルがありません。真剣にそれがすべてです。

Qtの-debug-and-releaseビルドをビルドする場合、デバッグを機能させるには、次のすべてのツリー(フォルダー)を保持する必要があります。

  • ソース、
  • ビルド、
  • インストールプレフィックス。

ビルド済みのQtが何のためにあるのか本当にわかりません。私に関する限り、それは提供されるべきではありません:それはただみんなの一体を混乱させるだけです。エンドユーザーには役に立たず、開発者にも役に立たない-Qtソースにアクセスせずにデバッグを真剣に見ることはできない。それはある意味で、情報源があるという目的を打ち破ります。確かに、必要なビルド済みのQtライブラリを備えたビルド済みのQt Creatorが必要ですが、これを外部に公開しないでください。

3

Xcodeを使用すると、Qtライブラリに初めてステップインする前に、LLDBウィンドウに次のコマンドを入力します。

settings set target.source-map /Users/qt/work/qt /path/to/Qt/5.10.1/Src

(明らかに、必要に応じてバージョン番号を変更する必要があります)。

しかし、Trolltechがビルドディレクトリを変更したとしたら、どうすればよいでしょうか。 (または、/Users/qt/work/qtパスを提供したコミュニティウィキはどのようにしてそれを見つけましたか?)/path/to/Qt/5.10.1/clang_64/lib/QtCore.framework.dSYM/Contents/Resources/DWARF/QtCore_debug(または他のQtライブラリ)を編集していくつかのパスを検索することで、パスが何である必要があるかを推測できます。 「/ Users」は良い推測のようです。ライブラリに約2%入ると、次のようなパスがたくさんあるセクションが表示され始めます。

../../include/QtCore/../../src/corelib/kernel^@../../include/QtCore       
/../../src/corelib/tools^@global^@/Users/qt/work/qt/qtbase/src/corelib
/../../include/QtCore/../../src/corelib/Arch^@/Applications/Xcode.app
/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/<etc>

書き込み可能であるように見える絶対パスを探します。 (たとえば、/Applications/...はビルドパスではない可能性があります)

2
prewett

最近のQtクリエーター(v 4.11)では、[ツール]> [オプション]> [デバッガー]> [一般]の[Qtソースの追加]ボタンを押して、[Qtソースファイル]を選択します。 Qt5は、「Qtデバッグ情報ファイル」をチェックしてオンラインインストーラーでインストールする必要があります。

1
David Osipyan