许多Qt类使用pimpl,因此它们对VS的调试器非常不透明。
当我想检查一些内部Qt状态以查看我的代码是否出错或者我对错误的预期有错误时,这很麻烦。
我正在使用Qt VS插件(1.1.0),但这似乎没有帮助。
有什么想法吗?
更新
我的autoexp.dat文件中填充了Qt的东西,但是我仍然无法查看较重的类(QWidget,QTcpSocket等)。
我可以看到更简单的类内容,所以下面的autoexp.dat似乎正在工作,但试图查看QWidget内部不起作用。
更新2
出于某种原因,在阅读评论并查看更多信息后,它确实有效,我可以看到数据。
我不知道平均时间发生了什么(当我刚刚工作并忽略它时),但我之前看到数据时遇到了问题。
我接受“正常工作”的答案,因为我无法删除一个有价值的问题,而这是最接近的答案。 (autoexp-dat只是很好地格式化调试行,使用已经可见的数据,如果有人挖掘的话)
答案 0 :(得分:3)
这可能会有助http://daniel-albuschat.blogspot.com/2008/02/qt-debugging-with-visual-studio-2005.html
IIRC安装Qt for Windows包含一个autoexp.dat文件 -
更正,它是qt-vs-addin
答案 1 :(得分:1)
您需要为调试器添加自定义转储程序。
GDB预先构建了一些。你可能不得不为其他调试器自己动手,但对于visual studio,通过调整autoexp.dat
文件可以很容易地得到一些不错的结果。有很多资源可以在线获取如何更改此文件。
答案 2 :(得分:1)
编辑autoexp.dat是一个选项。有关一组可视化工具,请参阅http://eecs.vanderbilt.edu/research/hmtl/wiki/pmwiki.php?n=Knowledge.Qt。
答案 3 :(得分:0)
好像你可能运气不好。
目前此页面包含可以添加到autoexp.dat的QT wariables最完整的宏列表: QT with Visual Studio 2008 (updated for Qt 4.5.2)
ActiveQt听起来也很有希望,但对你来说可能有点矫枉过正。
除此之外,您还必须滚动自己的表达式,或者编写Visual Studio Debugger Visualizer。 (更多信息请参见CodeProject或MSDN)
由于没有那样的东西,它可能是从头开始开发的好机会。 :)
答案 4 :(得分:-1)
当使用调试信息编译Qt时,绝对可以查看pimpl。不确定VS,但使用gdb,Just Works™。