xav*_*SIB 16 visual-studio-debugging qt4.8 visual-studio-2012
我使用visual studio 2012和Qt4.8.5,遗憾的是当我在调试模式下工作时,我看不到QString文本变量.有人有提示允许吗?VS2012不存在Qt4.8.5插件.
非常感谢
泽维尔
Dom*_*Cat 16
有一个快速而明确的解决方案(MSVC原生,不需要插件也不需要设置.dat文件), 从这里看我的答案
假设您有QString str(Qt4),然后添加到调试器监视窗口:
((str).d)->array,su
Run Code Online (Sandbox Code Playgroud)
附录,su告诉调试器将数据解释为unicode和null终止字符串.
注意:对于Qt5, QString str它可能是
(char*)str.d + str.d->offset,su
Run Code Online (Sandbox Code Playgroud)
该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>
Run Code Online (Sandbox Code Playgroud)
至少qt4.natvis可以与qt5.natvis共存,因为一个或另一个无法正确加载...
| 归档时间: |
|
| 查看次数: |
13122 次 |
| 最近记录: |