Visual Studio 2012とQt4.8.5を使用していますが、残念ながら、デバッグモードで作業しているときにQStringテキスト変数が表示されません。誰かがそれを許可するヒントを持っていますか? Qt4.8.5プラグインはVS2012には存在しません。
どうもありがとうございます
ザビエル
迅速で明示的な解決策があります(MSVCネイティブ、プラグインも.datファイルの設定も必要ありません) ここからの私の答えを参照してください
QString str
(Qt4)があるとし、デバッガーの監視ウィンドウに追加します。
((str).d)->array,su
付録,su
は、データをユニコードおよびヌル終了文字列として解釈するようにデバッガーに指示します。
注:Qt5QString str
の場合
(char*)str.d + str.d->offset,su
autoexp.datは、デバッガオプションを「ネイティブの編集と続行を有効にする」に設定しない限り使用されません。
これが4.8.5のQStringの私のnatvis実装です(最初の25文字のみを拡張します)
<Type Name="QString">
<DisplayString>"{d->data,sub}"</DisplayString>
<StringView>d->data,sub</StringView>
<Expand>
<Item Condition="d->size >= 0" Name="[size]">d->size</Item>
<Item Condition="d->size > 0" Name="[referenced]">d->ref._q_value</Item>
<ArrayItems Condition="d->size<=25">
<Size>d->size</Size>
<ValuePointer>d->data,c</ValuePointer>
</ArrayItems>
<ArrayItems Condition="d->size>25">
<Size>25</Size>
<ValuePointer>d->data,c</ValuePointer>
</ArrayItems>
<Item Condition="d->size>25" Name="...">d->size - 25</Item>
</Expand>
</Type>
少なくともqt4.natvisはqt5.natvisと共存できます。どちらか一方が正しくロードされないため、...
私にとって、Qt5とVisual Studio 2012では、これを実行しました。
プロジェクトオプション->デバッグ->デバッガタイプ->設定自動から混合。
文字列は時計に表示されません。
Visual Studio2015の場合...
[ツール]> [オプション]> [デバッグ]> [一般]> [ネイティブ互換モードを使用する]をオンにします