Russian Qt Forum
Март 25, 2017, 02:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: отображение содержимого QString и QByteArray из Qt 4 в отладчике MSVS 2012  (Прочитано 3413 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3850



Просмотр профиля WWW
« : Август 30, 2013, 22:34 »

давно мучился этим вопросом, и вот только на днях наконец-то нашел решение.

Qt VS Addin для 2012 студии создает свой файлик с расширениями для отладчика тут: c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers\qt5.natvis. Необходимо либо заменить существующие определения для QString и QByteArray в этом файле либо создать новый файл с любым названием и расширением natvis (например qt4.natvis):
Код
XML
   <!-- Qt 4 -->
   <Type Name="QString">
       <DisplayString>{d->data,su}</DisplayString>
       <StringView>d->data,su</StringView>
       <Expand>
           <Item Name="[size]">d-&gt;size</Item>
           <Item Name="[referenced]">d-&gt;ref._q_value</Item>
           <ArrayItems>
               <Size>d-&gt;size</Size>
               <ValuePointer>d->data,c</ValuePointer>
           </ArrayItems>
       </Expand>
   </Type>
 
   <Type Name="QByteArray">
       <DisplayString>{d->data,s}</DisplayString>
       <StringView>d->data,s</StringView>
       <Expand>
           <Item Name="[size]">d-&gt;size</Item>
           <Item Name="[referenced]">d-&gt;ref._q_value</Item>
           <ArrayItems>
               <Size>d-&gt;size</Size>
               <ValuePointer>d->data,c</ValuePointer>
           </ArrayItems>
       </Expand>
   </Type>
 
   <!-- Qt 5
   <Type Name="QString">
       <DisplayString>{((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>
           <Item Name="[size]">d-&gt;size</Item>
           <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
           <ArrayItems>
               <Size>d-&gt;size</Size>
               <ValuePointer>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),c</ValuePointer>
           </ArrayItems>
       </Expand>
   </Type>
 
   <Type Name="QByteArray">
       <DisplayString>{((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),sb}</DisplayString>
       <StringView>((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),sb</StringView>
       <Expand>
           <Item Name="[size]">d-&gt;size</Item>
           <Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
           <ArrayItems>
               <Size>d-&gt;size</Size>
               <ValuePointer>((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),c</ValuePointer>
           </ArrayItems>
       </Expand>
   </Type>
   -->

если создаете новый файл, то он должен выглядеть так:
Код
XML
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
сюда вставить вышеуказанный кусок
</AutoVisualizer>
« Последнее редактирование: Август 30, 2013, 22:36 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
b-s-a
Супер активный житель
*****
Offline Offline

Сообщений: 707



Просмотр профиля
« Ответ #1 : Сентябрь 02, 2013, 10:55 »

Создай баг на http://bugreports.qt-project.org. Может не только русскоязычным это поможет.
Записан

Правильно заданный вопрос - половина ответа.
Занимаюсь переводом Qt Creator
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3850



Просмотр профиля WWW
« Ответ #2 : Сентябрь 02, 2013, 11:33 »

это не баг: аддин не будет поддерживать Qt 4 для студии 2012 насколько я знаю.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.06 секунд. Запросов: 22.