Я использую visual studio 2012 и Qt4.8.5, к сожалению, я не вижу текстовую переменную QString, когда я работаю в режиме отладки. Есть ли у кого-нибудь подсказка? Модуль Qt4.8.5 для VS2012 не существует.
Большое спасибо
Ксавьер
Я использую visual studio 2012 и Qt4.8.5, к сожалению, я не вижу текстовую переменную QString, когда я работаю в режиме отладки. Есть ли у кого-нибудь подсказка? Модуль Qt4.8.5 для VS2012 не существует.
Большое спасибо
Ксавьер
Существует быстрое и ясное решение (родной MSVC, нет необходимости в плагинах или настройке .dat файлов), см. мой ответ отсюда
Скажите, что у вас есть QString str
(Qt4), затем добавьте в окно просмотра отладчика:
((str).d)->array,su
приложение ,su
сообщает отладчику интерпретировать данные как строку в виде unicode и null terminated.
Примечание. Для Qt5 QString str
это может быть
(char*)str.d + str.d->offset,su
autoexp.dat не используется, если вы не установите для параметров отладчика значение "Включить собственное редактирование и продолжить"
вот моя реализация natvis QString для 4.8.5 (расширяет только первые 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 Studio 2015...
Инструменты > Параметры > Отладкa > Общие > Проверка "Использовать режим основной совместимости"