c++ - 如何 Qt - Qml 调试和/或分析?

标签 c++ qt embedded cmake qml

在应用程序中编译需要哪些软件 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 调试:

  1. 将调试启用程序包含到我的应用程序的启动代码中

      #include <QtDeclarative/qdeclarativedebug.h>
    
      /* [...] */
    
      QDeclarativeDebuggingEnabler enabler;
    
  2. QML_DISABLE_OPTIMIZER=1 添加到我的应用程序的执行环境

    这可以在项目页面的执行选项卡中的 Qt Creator 中完成。

  3. 勾选执行选项卡中的 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/

相关文章:

c++ - C/C++ 使用内存值预定义数组

linux - 如何在不实际拔下 USB 调制解调器的情况下逻辑断开和重新连接 USB 调制解调器

c - 如何计算 mpu6050 的倾斜角度?

QT QML 如何只更改按钮样式的一个功能

c - 传递结构或指向结构的指针更好?

c++ - 如何从成员初始化列表中调用随机生成器的seed_seq构造函数?

c++ - vector 必须与其分配器具有相同的值

c++ - 使用 C++ 预处理器自动生成重复代码

c++ - 如何删除 TreeView 中所选项目下的所有项目

java - VTK 与 Java 或 QT 一起玩得更好吗?