Qt调试器控制台无法看到调试会话。

3

首先在官方Qt论坛发帖求助,但未获得回应。

使用Qt Creator 4.2.0(社区版),Windows 7 SP1,MSVC 2013 64位。尝试调试一个预安装的示例项目。调试会话正在运行,断点起作用,变量值更新,但是无论我在Debugger Console窗口中输入什么,它始终显示“Can only evaluate during a debug session”。有什么办法可以解决这个问题吗?

更新:编译输出如下。

21:51:30: Running steps for project svgviewer...
21:51:30: Configuration unchanged, skipping qmake step.
21:51:30: Starting: "C:\Qt\Qt5.7.1\Tools\QtCreator\bin\jom.exe" 
    C:\Qt\Qt5.7.1\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
cl -c -nologo -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -EHsc /Fddebug\svgviewer.vc.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\svgviewer -I. -I..\..\..\..\5.7\msvc2013_64\include -I..\..\..\..\5.7\msvc2013_64\include\QtSvg -I..\..\..\..\5.7\msvc2013_64\include\QtOpenGL -I..\..\..\..\5.7\msvc2013_64\include\QtWidgets -I..\..\..\..\5.7\msvc2013_64\include\QtGui -I..\..\..\..\5.7\msvc2013_64\include\QtANGLE -I..\..\..\..\5.7\msvc2013_64\include\QtCore -Idebug -I..\..\..\..\5.7\msvc2013_64\mkspecs\win32-msvc2013 -Fodebug\ @C:\Users\msl\AppData\Local\Temp\main.obj.7392.31.jom
main.cpp
C:\Qt\Qt5.7.1\5.7\msvc2013_64\bin\rcc.exe -name svgviewer ..\svgviewer\svgviewer.qrc -o debug\qrc_svgviewer.cpp
C:\Qt\Qt5.7.1\5.7\msvc2013_64\bin\moc.exe -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1800 -D_WIN32 -D_WIN64 -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/mkspecs/win32-msvc2013 -IC:/Qt/Qt5.7.1/Examples/Qt-5.7/svg/svgviewer -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtSvg -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtOpenGL -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtWidgets -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtGui -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtANGLE -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtCore -I. ..\svgviewer\mainwindow.h -o debug\moc_mainwindow.cpp
C:\Qt\Qt5.7.1\5.7\msvc2013_64\bin\moc.exe -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1800 -D_WIN32 -D_WIN64 -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/mkspecs/win32-msvc2013 -IC:/Qt/Qt5.7.1/Examples/Qt-5.7/svg/svgviewer -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtSvg -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtOpenGL -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtWidgets -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtGui -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtANGLE -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtCore -I. ..\svgviewer\exportdialog.h -o debug\moc_exportdialog.cpp
C:\Qt\Qt5.7.1\5.7\msvc2013_64\bin\moc.exe -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1800 -D_WIN32 -D_WIN64 -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/mkspecs/win32-msvc2013 -IC:/Qt/Qt5.7.1/Examples/Qt-5.7/svg/svgviewer -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtSvg -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtOpenGL -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtWidgets -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtGui -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtANGLE -IC:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtCore -I. ..\svgviewer\svgview.h -o debug\moc_svgview.cpp
cl -c -nologo -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -EHsc /Fddebug\svgviewer.vc.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\svgviewer -I. -I..\..\..\..\5.7\msvc2013_64\include -I..\..\..\..\5.7\msvc2013_64\include\QtSvg -I..\..\..\..\5.7\msvc2013_64\include\QtOpenGL -I..\..\..\..\5.7\msvc2013_64\include\QtWidgets -I..\..\..\..\5.7\msvc2013_64\include\QtGui -I..\..\..\..\5.7\msvc2013_64\include\QtANGLE -I..\..\..\..\5.7\msvc2013_64\include\QtCore -Idebug -I..\..\..\..\5.7\msvc2013_64\mkspecs\win32-msvc2013 -Fodebug\ @C:\Users\msl\AppData\Local\Temp\qrc_svgviewer.obj.7392.218.jom
qrc_svgviewer.cpp
cl -c -nologo -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -EHsc /Fddebug\svgviewer.vc.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\svgviewer -I. -I..\..\..\..\5.7\msvc2013_64\include -I..\..\..\..\5.7\msvc2013_64\include\QtSvg -I..\..\..\..\5.7\msvc2013_64\include\QtOpenGL -I..\..\..\..\5.7\msvc2013_64\include\QtWidgets -I..\..\..\..\5.7\msvc2013_64\include\QtGui -I..\..\..\..\5.7\msvc2013_64\include\QtANGLE -I..\..\..\..\5.7\msvc2013_64\include\QtCore -Idebug -I..\..\..\..\5.7\msvc2013_64\mkspecs\win32-msvc2013 -Fodebug\ @C:\Users\msl\AppData\Local\Temp\moc_mainwindow.obj.7392.343.jom
moc_mainwindow.cpp
cl -c -nologo -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -EHsc /Fddebug\svgviewer.vc.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\svgviewer -I. -I..\..\..\..\5.7\msvc2013_64\include -I..\..\..\..\5.7\msvc2013_64\include\QtSvg -I..\..\..\..\5.7\msvc2013_64\include\QtOpenGL -I..\..\..\..\5.7\msvc2013_64\include\QtWidgets -I..\..\..\..\5.7\msvc2013_64\include\QtGui -I..\..\..\..\5.7\msvc2013_64\include\QtANGLE -I..\..\..\..\5.7\msvc2013_64\include\QtCore -Idebug -I..\..\..\..\5.7\msvc2013_64\mkspecs\win32-msvc2013 -Fodebug\ @C:\Users\msl\AppData\Local\Temp\moc_exportdialog.obj.7392.406.jom
moc_exportdialog.cpp
cl -c -nologo -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -EHsc /Fddebug\svgviewer.vc.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\svgviewer -I. -I..\..\..\..\5.7\msvc2013_64\include -I..\..\..\..\5.7\msvc2013_64\include\QtSvg -I..\..\..\..\5.7\msvc2013_64\include\QtOpenGL -I..\..\..\..\5.7\msvc2013_64\include\QtWidgets -I..\..\..\..\5.7\msvc2013_64\include\QtGui -I..\..\..\..\5.7\msvc2013_64\include\QtANGLE -I..\..\..\..\5.7\msvc2013_64\include\QtCore -Idebug -I..\..\..\..\5.7\msvc2013_64\mkspecs\win32-msvc2013 -Fodebug\ @C:\Users\msl\AppData\Local\Temp\moc_svgview.obj.7392.421.jom
moc_svgview.cpp
cl -c -nologo -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -EHsc /Fddebug\svgviewer.vc.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\svgviewer -I. -I..\..\..\..\5.7\msvc2013_64\include -I..\..\..\..\5.7\msvc2013_64\include\QtSvg -I..\..\..\..\5.7\msvc2013_64\include\QtOpenGL -I..\..\..\..\5.7\msvc2013_64\include\QtWidgets -I..\..\..\..\5.7\msvc2013_64\include\QtGui -I..\..\..\..\5.7\msvc2013_64\include\QtANGLE -I..\..\..\..\5.7\msvc2013_64\include\QtCore -Idebug -I..\..\..\..\5.7\msvc2013_64\mkspecs\win32-msvc2013 -Fodebug\ @C:\Users\msl\AppData\Local\Temp\exportdialog.obj.7392.47.jom
exportdialog.cpp
cl -c -nologo -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -EHsc /Fddebug\svgviewer.vc.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\svgviewer -I. -I..\..\..\..\5.7\msvc2013_64\include -I..\..\..\..\5.7\msvc2013_64\include\QtSvg -I..\..\..\..\5.7\msvc2013_64\include\QtOpenGL -I..\..\..\..\5.7\msvc2013_64\include\QtWidgets -I..\..\..\..\5.7\msvc2013_64\include\QtGui -I..\..\..\..\5.7\msvc2013_64\include\QtANGLE -I..\..\..\..\5.7\msvc2013_64\include\QtCore -Idebug -I..\..\..\..\5.7\msvc2013_64\mkspecs\win32-msvc2013 -Fodebug\ @C:\Users\msl\AppData\Local\Temp\mainwindow.obj.7392.31.jom
mainwindow.cpp
cl -c -nologo -Zc:wchar_t -FS -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -EHsc /Fddebug\svgviewer.vc.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\svgviewer -I. -I..\..\..\..\5.7\msvc2013_64\include -I..\..\..\..\5.7\msvc2013_64\include\QtSvg -I..\..\..\..\5.7\msvc2013_64\include\QtOpenGL -I..\..\..\..\5.7\msvc2013_64\include\QtWidgets -I..\..\..\..\5.7\msvc2013_64\include\QtGui -I..\..\..\..\5.7\msvc2013_64\include\QtANGLE -I..\..\..\..\5.7\msvc2013_64\include\QtCore -Idebug -I..\..\..\..\5.7\msvc2013_64\mkspecs\win32-msvc2013 -Fodebug\ @C:\Users\msl\AppData\Local\Temp\svgview.obj.7392.31.jom
svgview.cpp
link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:debug\svgviewer.exe @C:\Users\msl\AppData\Local\Temp\svgviewer.exe.7392.3416.jom
21:51:35: The process "C:\Qt\Qt5.7.1\Tools\QtCreator\bin\jom.exe" exited normally.
21:51:35: Elapsed time: 00:04.

看起来代码是以发布版本而非调试版本构建的。 - Alexander V
1
@AlexanderVX 配置名称为 Debug,我可以检查变量。我认为它是以 Debug 模式构建的。也许有一些额外的开关在某个地方丢失了吗? - sigil
你可以在编译输出控制台中发布编译器输出吗? - Alexander V
当然可以。希望我格式化得正确。 - sigil
所有的内容似乎都与调试编译模式匹配,-Zi也在其中。 - Alexander V
1个回答

7
"调试器控制台"用于QML,您可以在QML调试会话的上下文中评估JavaScript表达式。
要与本机C/C++调试器交互,您需要使用调试器日志视图的左侧(在调试模式下,选择窗口>视图>调试器日志)。文档。"

1
看到了那个日志窗口,谢谢。不幸的是,它的功能非常有限。因此,Qt Creator似乎没有其他集成开发环境那样的调试控制台? - sigil
@sigil "遗憾的是,它的功能非常有限" 我不太了解CDB可以做什么,但是使用GDB和LLDB,您可以在调试器日志中执行任何操作,因此我希望CDB也能做到同样的事情。不确定您希望通过“调试器控制台”能够做什么?您还可以在“本地变量和表达式”视图中评估表达式,并且可以更改具有简单类型的变量的值。(http://doc.qt.io/qtcreator/creator-debug-mode.html) - E4z9
我想要能够评估像 pos().x() + width() / 2 这样的表达式。局部变量和表达式非常慢 -- 简单的刷新可能需要一分钟。Qt 文档也证实了这一点。我曾经有过一个错误的希望,认为至少调试控制台会像 Visual Studio 中那样工作。我想我只能坚持使用 qDebug() 和不断重建了。 - sigil
@sigil 你能在调试器日志中评估cdb命令吗?据我所知,你也应该能够使用??在cdb中评估表达式。详情请参考https://msdn.microsoft.com/en-us/library/windows/hardware/ff566251(v=vs.85).aspx - E4z9
我认为“调试器控制台”这个名称真的很糟糕。而且,“调试器日志”视图似乎不能让你在程序启动之前立即附加到它。使用r将导致控制台停止工作。 - jrh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接