VS2010的Qt库从4.8.5更新到5.5.1后,QVector和QMap调试时无法显示具体内容

VTTTTT 2017-12-28 09:41:50
如题,楼主目前用VS2010做项目,原本配置的是Qt4.8.5,后来觉得不够用,遂升级为5.5.1,升级后程序正常运行,但有几处问题:
1. 打开VS时,会弹出找不到4.8.5的提示。但楼主已经在Qt Options里删掉4.8.5这个版本了。可能是有哪个角落忘记设置了

图片内容是
“The following error occured:
These Qt versions are inaccessible:
4.8.5 in D:\4.8.5
Make sure that you have read access to all files in your Qt directories.”
2. 在调试时,调试器无法显示QVector和QMap的内容,全部显示 (error),但QList可以正常显示,如下图


无法调试QVector这个问题让楼主发际线都后移了好几公分,搜遍全网都找不到相似案例,还请各位大佬不吝赐教,谢谢!
给大家拜个早年!
...全文
1787 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
有点贪玩 2018-02-02
  • 打赏
  • 举报
回复
引用 9 楼 VTTTTT 的回复:
[quote=引用 8 楼 qq981091829 的回复:] [quote=引用 6 楼 VTTTTT 的回复:] [quote=引用 5 楼 qq981091829 的回复:] http://note.youdao.com/noteshare?id=6890d1d427091c5209a54ebd7223a3aa 可以用这个方法尝试一下,不知道管不管用,之前用的是VS2010+Qt5.1存在这个问题,这个方法能解决。现在我用的是vs2017+Qt5.5.1,没有这个问题。
请问你改的是哪些部分呢? 我下载了跟现有的autoexp.dat做了对比,发现只有版本号不一样,你的是1.2.2,我的是1.2.5,其它部分都是完全一样的,, 覆盖之后,问题也没有解决[/quote] 我也不知道改了哪,用vs2010+Qt5.1时,别人直接给我的文件,应该是很古老的人给他的。 [/quote] 我收到了你的邮件,并成功解决问题,非常感谢!! 显示Qt5的QVector和QMap内容的正确语法藏在autoexp.qte里,把它替换到autoexp.dat里就可以了 我看到那个文件有别人改过的痕迹,应该是给你的那位大牛改的 这问题困扰了我一个多月,再次谢谢!~[/quote] 不客气 大家一起探讨而已,我也不太懂
有点贪玩 2018-02-01
  • 打赏
  • 举报
回复
引用 6 楼 VTTTTT 的回复:
[quote=引用 5 楼 qq981091829 的回复:] http://note.youdao.com/noteshare?id=6890d1d427091c5209a54ebd7223a3aa 可以用这个方法尝试一下,不知道管不管用,之前用的是VS2010+Qt5.1存在这个问题,这个方法能解决。现在我用的是vs2017+Qt5.5.1,没有这个问题。
请问你改的是哪些部分呢? 我下载了跟现有的autoexp.dat做了对比,发现只有版本号不一样,你的是1.2.2,我的是1.2.5,其它部分都是完全一样的,, 覆盖之后,问题也没有解决[/quote] 我也不知道改了哪,用vs2010+Qt5.1时,别人直接给我的文件,应该是很古老的人给他的。
VTTTTT 2018-02-01
  • 打赏
  • 举报
回复
在这里贴出解决方法,供各位参考 打开文件 $(VSDIR)\Common7\Packages\Debugger\autoexp.dat (VSDIR是本机Visual Studio的安装目录) 把定义QVector和QMap显示内容的语句改成以下语句

;------------------------------------------------------------------------------
; QVector, QStack
;------------------------------------------------------------------------------
QVector<*>|*::QVector<*>|QStack<*>|*::QStack<*>{
    preview
    (
        #if ($c.d->size <= 10) (
            #(
                "[", $c.d->size, "](",
                #array
                (
                    expr: (($T1*)((char*)($c.d)+ $c.d->offset))[$i],
                    size: $c.d->size
                ), ")"
            )
        ) #else (
            #(
                "[", $c.d->size, "](",
                #array
                (
                    expr: (($T1*)((char*)($c.d)+ $c.d->offset))[$i],
                    size: $c.d->size
                ), ", ...)"
            )
        )
    )
    children
    (
        #array
        (
            expr: (($T1*)((char*)($c.d)+ $c.d->offset))[$i],
            size: $c.d->size
        )
    )
}

;------------------------------------------------------------------------------
; QMap
;------------------------------------------------------------------------------
QMapNode<*,*>{
    preview
    (
        #(
            "(",
            $e.key,
            "; ",
            $e.value,
            ")"
        )
    )

    children
    (
        #(
            key: $e.key,
            value: $e.value
        )
    )
}
QMap<*>{
    children
    (
        #(
            raw data: [$c,!],
    			  #tree
					  (
							head: &($e.d->header),
							size: $e.d->size,
							left: left,
							right: right,
						) : ((QMapNode<$T1>*)&$e)
						
        )
    )

    preview
    (
        #(
            "[",
            $e.d->size,
            "](",
							  #tree
							  (
									head: &($e.d->header),
									size: $e.d->size,
									left: left,
									right: right,
								) : ((QMapNode<$T1>*)&$e),
            ")"
        )
    )
}
done 至于autoexp.dat是干嘛用的,请自行百度
VTTTTT 2018-02-01
  • 打赏
  • 举报
回复
另外,那个Qt 4.8.5 are inaccessible的问题 是因为我在安装Qt5 add-in的时候,Qt4 add-in没有卸载干净 两个插件同时存在导致的
VTTTTT 2018-02-01
  • 打赏
  • 举报
回复
引用 8 楼 qq981091829 的回复:
[quote=引用 6 楼 VTTTTT 的回复:] [quote=引用 5 楼 qq981091829 的回复:] http://note.youdao.com/noteshare?id=6890d1d427091c5209a54ebd7223a3aa 可以用这个方法尝试一下,不知道管不管用,之前用的是VS2010+Qt5.1存在这个问题,这个方法能解决。现在我用的是vs2017+Qt5.5.1,没有这个问题。
请问你改的是哪些部分呢? 我下载了跟现有的autoexp.dat做了对比,发现只有版本号不一样,你的是1.2.2,我的是1.2.5,其它部分都是完全一样的,, 覆盖之后,问题也没有解决[/quote] 我也不知道改了哪,用vs2010+Qt5.1时,别人直接给我的文件,应该是很古老的人给他的。 [/quote] 我收到了你的邮件,并成功解决问题,非常感谢!! 显示Qt5的QVector和QMap内容的正确语法藏在autoexp.qte里,把它替换到autoexp.dat里就可以了 我看到那个文件有别人改过的痕迹,应该是给你的那位大牛改的 这问题困扰了我一个多月,再次谢谢!~
VTTTTT 2018-01-31
  • 打赏
  • 举报
回复
引用 5 楼 qq981091829 的回复:
http://note.youdao.com/noteshare?id=6890d1d427091c5209a54ebd7223a3aa 可以用这个方法尝试一下,不知道管不管用,之前用的是VS2010+Qt5.1存在这个问题,这个方法能解决。现在我用的是vs2017+Qt5.5.1,没有这个问题。
你现在用的是Qt5.5.1吧? 能否把你现在VS目录下的autoexp.dat ; autoexp.qte ; autoexp.qto 三个文件发给我看看呢? 不胜感激! 邮箱865568497@qq.com
VTTTTT 2018-01-30
  • 打赏
  • 举报
回复
引用 5 楼 qq981091829 的回复:
http://note.youdao.com/noteshare?id=6890d1d427091c5209a54ebd7223a3aa 可以用这个方法尝试一下,不知道管不管用,之前用的是VS2010+Qt5.1存在这个问题,这个方法能解决。现在我用的是vs2017+Qt5.5.1,没有这个问题。
请问你改的是哪些部分呢? 我下载了跟现有的autoexp.dat做了对比,发现只有版本号不一样,你的是1.2.2,我的是1.2.5,其它部分都是完全一样的,, 覆盖之后,问题也没有解决
有点贪玩 2018-01-30
  • 打赏
  • 举报
回复
http://note.youdao.com/noteshare?id=6890d1d427091c5209a54ebd7223a3aa 可以用这个方法尝试一下,不知道管不管用,之前用的是VS2010+Qt5.1存在这个问题,这个方法能解决。现在我用的是vs2017+Qt5.5.1,没有这个问题。
VTTTTT 2018-01-16
  • 打赏
  • 举报
回复
有木有人呐,,走过路过来看看了哟,,, 过年回来再没人就结帖了
萧洛 2018-01-10
  • 打赏
  • 举报
回复
引用 2 楼 VTTTTT 的回复:
[quote=引用 1 楼 jxbinwd 的回复:] 看弹出错误对话框的标题,明显是vs的qt插件 vsaddin有问题,下载一个对应qt版本的插件重新安装。 不过,楼主如果用VS2013,我建议装qt-vs-tools-msvc2013-2.1.1.vsix,很小的插件。 下载地址:http://download.qt.io/official_releases/vsaddin/
插件是qt-vs-addin-1.2.5.exe 是VS2010针对Qt5的版本 而Qt库版本是5.5.1 看着没有问题啊 我怀疑是项目原本用的是4.8.5,残留的设置没有清干净 然而,,找不到,,[/quote] 重装插件
VTTTTT 2018-01-04
  • 打赏
  • 举报
回复
引用 1 楼 jxbinwd 的回复:
看弹出错误对话框的标题,明显是vs的qt插件 vsaddin有问题,下载一个对应qt版本的插件重新安装。 不过,楼主如果用VS2013,我建议装qt-vs-tools-msvc2013-2.1.1.vsix,很小的插件。 下载地址:http://download.qt.io/official_releases/vsaddin/
插件是qt-vs-addin-1.2.5.exe 是VS2010针对Qt5的版本 而Qt库版本是5.5.1 看着没有问题啊 我怀疑是项目原本用的是4.8.5,残留的设置没有清干净 然而,,找不到,,
萧洛 2018-01-02
  • 打赏
  • 举报
回复
看弹出错误对话框的标题,明显是vs的qt插件 vsaddin有问题,下载一个对应qt版本的插件重新安装。 不过,楼主如果用VS2013,我建议装qt-vs-tools-msvc2013-2.1.1.vsix,很小的插件。 下载地址:http://download.qt.io/official_releases/vsaddin/

16,201

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧