在应用程序中编译需要哪些软件 Qt/QML 片段才能调试/分析 QML?
我当前的应用程序是使用 cmake 构建的,并在嵌入式设备上运行。此外,我开始使用 Qt 4.8.3(直到现在是 4.7.0)。
我想使用这些奇特/酷的功能(对于嵌入式开发人员):
http://doc.qt.digia.com/qtcreator/creator-qml-performance-monitor.html
我搜索了 qt-project寻求帮助,但我不清楚当您想要使用自定义构建环境调试/分析远程应用程序时需要执行哪些步骤。
所以,我想知道是否需要执行以下任何步骤,在肯定的情况下,实际上需要什么代码。
- Qt 库 ./configure 特定选项。
- 用于连接/启动远程应用程序的 QtCreator 特定选项。
- Cmake 包含最终应用程序可执行文件中所需的库。
欢迎任何帮助、链接等。
最佳答案
有了 Qt 4.8,这变得非常容易。所有必需的库现在都是 Qt 本身的一部分,您不必自己为您的 Qt 版本构建调试库。
我正在开发一个同样使用 CMake 构建的 Qt/QML 桌面应用程序。我必须完成以下步骤才能启用 QML 调试:
将调试启用程序包含到我的应用程序的启动代码中
#include <QtDeclarative/qdeclarativedebug.h> /* [...] */ QDeclarativeDebuggingEnabler enabler;
将
QML_DISABLE_OPTIMIZER=1
添加到我的应用程序的执行环境这可以在项目页面的执行选项卡中的 Qt Creator 中完成。
勾选执行选项卡中的 QML 调试复选框
这为 Qt Creator 和应用程序中嵌入的 QML 调试器组件之间的通信添加了必需的命令行参数
如果一切正常,如果在 Debug模式下启动,应用程序会向您显示以下输出:
Qml debugging is enabled. Only use this in a safe environment!
QDeclarativeDebugServer: Waiting for connection on port 3768...
QDeclarativeDebugServer: Connection established
之后我就可以设置断点和检查变量了。通过分析页面访问的探查器也刚刚工作。
在开发嵌入式应用程序时,您的情况显然要复杂一些。
Qt creator 不支持在嵌入式平台上部署和执行基于 CMake 的项目。你必须自己做。不要忘记将所需的参数传递给您的应用程序以配置 QML 调试:
$ your-app -qmljsdebugger=port:3768,block
要将 Qt Creator 附加到远程运行的应用程序以进行分析 session ,请使用 Qt Creator 主菜单中“分析”菜单中的相应“外部”条目。在“调试”>“调试”下使用“连接到调试服务器”进行调试的类似选项在哪里。
关于c++ - 如何 Qt - Qml 调试和/或分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13366495/