2011-01-18 5 views
7

私はベクターを大量に使い、Mac OS X 10.6.6でQt Creator 2.0.1を初めて開発するプログラムを書いています。OS XでQt CreatorのデバッガにC++ベクタの内容を表示させるにはどうすればよいですか?

私はデバッグしていますように、私はLocals and Watchersウィンドウでうまくリテラルと配列を見ることができますが、できるだけ早く私はベクトルを拡大して行くように、タイプStudentのこのケースでは、私はこの木を取得する:

alt text

私がこれに関して取り組んでいる他の人は、Ubuntuで同じバージョンのQt Creatorを使用していて、ベクトルの内容をうまく見ることができます。私は間違って何をしていますか?

これは彼のデバッガです:

alt text

答えて

8

QtCreator 2.6は、Mac FSF GDB(7.5)サポートをサポートしています。 FSF GDBはqtcreatorがQVector、QSet、QList、QStringなどを適切に表示できるようにするpythonをサポートしています。これはmacportsからダウンロードできます。

  1. ダウンロードおよびインストールMacPortsの(ここhttp://www.macports.org/install.phpからダウンロード)
  2. FSF GDB 7.5をインストールするには:

     sudo port install gdb 
    
  3. は、アプリケーションをデバッグするFSF GDB権限を与えます

    sudo codesign -s gdb-cert /opt/local/bin/ggdb 
    

    gdb-certが見つからない場合は、下のリンクをクリックしてgdb-certを作成し、証明書」を作成すること:あなたがggdbする許可を与えていない場合は

    http://sourceware.org/gdb/wiki/BuildingOnDarwin

    、あなたが買ってあげる:

    Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5). 
    (please check gdb is codesigned - see taskgated(8)) 
    
  4. 変更キットデバッガをenter image description here

    QtCreator にパスを/ usr/bin/gdbから/ opt/local/bin/ggdbに変更してください。

  5. デフォルトでは、mac clang ++はデバッグシンボルをエクスポートしないため、FSF GDBはブレークポイントを正しく処理できません。デバッグシンボルをエクスポートするには、dsymutilを手動で実行する必要があります。幸いにも、qmakeを使ってプログラムをリンクした後、dysmutilコマンドを自動的に実行することができます。あなたの.PROファイルに次の行を追加します。

    macx { 
        CONFIG(debug, debug|release) { 
         QMAKE_POST_LINK = dsymutil \"MyApp.app/Contents/MacOS/MyApp\" 
        } 
    } 
    
+0

これは私の問題を完全に解決しました。本当にありがとう。 – David

+0

ありがとう!ところで、ステップ5は私のために必要ではなかった。おそらく、彼らはそれを修正しましたか? –

3

デバッグヘルパーを構築する必要があります。ツール - >オプション...の下にある必要があります。

デバッグヘルパーがビルドされたら、std :: string、QString、およびcontainersも視覚化できます。

Qtのバージョンを使用する場所と同じ場所に再構築ボタンがあるはずです。

http://www.qtcentre.org/threads/31862-quot-No-valid-Qt-version-set.-Set-one-in-Tools-Options-quot-Windows-QtCreator

+0

それはそれはSTDだ、私はとのトラブルを抱えている文字列ではありません::ベクトル。私は文字列とintsとcharsと配列がうまく見ることができます。また、再建は役に立たなかった。しかし、提案に感謝します。 – DanBlakemore

0

2つの答えは、一種の権利です:1はまだAppleのGDBで動作し、それのC++バージョンがある、Mac上のPythonベースのデバッグヘルパーを使用することはできません。

関連する問題