QML调试& qmljsdebugger分析不适用于使用Yocto的RPI(poky-pyro)

时间:2017-10-12 01:57:49

标签: qt raspberry-pi qml yocto

我想使用QML Profiler来收集数据,qmljsdebugger处理目标设备上的主机。我使用以下参数运行我的应用程序:

<app executable> -qmljsdebugger = port:<any available>

我尝试运行探查器来从qtcreator(外部)中收集数据 我目前在目标设备上遇到的问题有两个:

  1. 应用程序不在调试模式下运行,
  2. qmljsdebugger模块无法启动。
  3. 我相信如果应用程序在调试模式下运行,则应用程序在命令行上运行时应显示以下行:

      

    启用QML调试。只能在安全的环境中使用它。 (不   没出现!)

    如果qmljsdebugger模块启动,应用程序运行时应显示以下行;

      

    QML调试器:等待端口连接。 (才不是   出现!)

    现在,要启用调试模式,我知道我们需要将以下内容放在项目的.pro文件中;

    CONFIG+=qml_debug
    

    要启动qmljsdebugger,我们需要将参数与app可执行文件一起提供,如上所述。
    我也明白qmljsdebugger依赖于两个文件:

    1. libqmldbg_tcp.so
    2. libqmldbg_inspector.so
    3. 它们必须存在于qmltooling文件夹中的目标设备上,该文件夹通常位于系统qt5 lib文件夹中的plugins文件夹中。
      设备上缺少这些文件。所以我尝试bitbake工具链并从那里获取这些文件。但我得到的不是带有上述两个文件的qmltooling文件夹,而是我得到一个带有不同名称的文件的qml1tooling文件夹(libqmldbg_tcp_qtdeclarative.so)。我没想到它会起作用但事实并非如此 除此之外,我将lib,bin,include从sysroots复制到/ usr / lib,usr / bin和/ usr / include文件夹。但似乎没有任何东西在任何地方徘徊。 任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

我发现了如何做到这一点。有问题的插件已在meta-qt5&gt;中的配方qtbase_git.bb中禁用。食谱-qt&gt; QT5。我不得不评论这一行,以使用qml-debug选项进行bitbake配置qtbase。

# PACKAGECONFIG[qml-debug] = "-qml-debug,-no-qml-debug"

选择的默认值为no-qml-debug,这是不允许它在qt5&gt;中创建插件的内容。插件&gt; qmltooling文件夹。 另外,如果使用工具链来交叉编译你的qml应用程序,那么工具链也应该用上面注释的行重建,否则工具链将创建的二进制文件仍然不会启用Qml Debug。

答案 1 :(得分:0)

相当古老的话题……但是,这仍然可以帮助观众: 启用QML调试的一种更干净的方法是为qtbase添加一个bbappend,然后在其中简单地添加以下行:

PACKAGECONFIG_append = " qml-debug"

这等同于上面提出的修改,但是更干净,因为它不涉及修改基本配方。