2016-04-30 11 views
0

Es scheint, dass die Visualisierung von Qt5.6 QStrings im Debugger von Visual Studio 2015 nicht mit der Standardmethode der QString-Visualisierung (Hinzufügen eines natvis zu Visual Studio 2015 \ Visualizer) funktioniert in Visual Studio 2013 und davor. Ist das korrekt? Hat es jemand geschafft, QString Visualisierung in VS 2015 hinzuzufügen?Ansicht Qt5.6 QStrings in Visual Studio 2015 Debugger

Antwort

1

Ich hatte dies erfolgreich in VS 2015 mit Qt 5.6 für eine Weile, obwohl entweder Update 3 oder ein Zusatz, den ich gemacht habe, begann Dinge zu vermasseln. Dies ist die Definition, die ich verwenden:

<Type Name="QString"> 
    <DisplayString IncludeView="nq">{((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset/2),sub}</DisplayString> 
    <DisplayString ExcludeView="nq">"{((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset/2),sub}"</DisplayString> 
    <StringView>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset/2),sub</StringView> 
    <Expand HideRawView="true"> 
     <Item ExcludeView="simple" Name="[size]">d-&gt;size</Item> 
     <Item ExcludeView="simple" Name="[referenced]">d-&gt;ref.atomic._q_value</Item> 
     <ArrayItems ExcludeView="simple"> 
      <Size>d-&gt;size</Size> 
      <ValuePointer>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset/2),c</ValuePointer> 
     </ArrayItems> 
    </Expand> 
</Type> 

Wenn Sie die Qt5.natvis-Datei, die mit dem inzwischen veralteten VS Addin kommt, habe ich es zu meiner Lösung, damit ich es ändern könnte. Es gab eine Reihe von Dingen, die nicht ganz richtig funktionierten, und ich habe im Laufe der Zeit viele weitere hinzugefügt.

Hinweis: Ich habe eine Ansicht hinzugefügt, um die Zeichenfolge ohne Anführungszeichen anzuzeigen, und hinzugefügt die Möglichkeit, view(simple) woanders zu verwenden, um die untergeordneten Elemente zu unterdrücken, aber ich denke, dass dies ansonsten unverändert ist.

Wenn Sie immer noch Schwierigkeiten haben, können Sie für Natvis auf Warnung oder die ausführliche Protokollierung aktivieren:

Options > Debugging > Output Window