9

小さなレクサーをデバッグしようとしたところ、この問題が発生しました。QtCreator-Debugger は std::string-variable の内容を表示しません。コンソールでデバッグしようとしましたが、単純な構造情報だけで同じ結果が得られました。

数日前に使用した QtCreator のバージョンでは、文字列の内容が表示されました。std::vector、std::map、std::multimap などの他のすべての STL 要素は、正しいデータを表示します。正しく機能しないのは std::string クラスだけです。

数時間グーグルで調べた後、きれいなプリンターの作成について説明している多くのWebページを見つけましたが、これを修正するための私の本当に初心者のアプローチは役に立ちませんでした。このバグを取り除く方法はありますか?

注: 文字列変数の「内容」は常に「アクセス不可」と表示されます。64 ビット Linux OS 用の QtCreator 2.6 (QT5) を使用しています。

編集 (1): OS からコンパイラ、IDE まですべてを再インストールしました...奇妙なことに、最適化レベル 3 (-O3) でプロジェクトをビルドすると、QT は std::strings を表示できます。

コマンドラインは次のとおりです: clang++ -std=c++11 -O3 -g -c foo.cpp

-O3 std::strings を削除すると、<アクセスできません> になります。何か案は?

4

3 に答える 3

6

これを試してみてください、それは私にとってはうまくいきました。
Qt Creator メニューバー:

Tools -> Options -> Debugger
Uncheck the option (Load system GDB pretty printers)
于 2014-10-15T18:15:49.817 に答える