从 Qt Creator 附加到 Android 进程

Posted

技术标签:

【中文标题】从 Qt Creator 附加到 Android 进程【英文标题】:Attach to Android process from Qt Creator 【发布时间】:2015-11-23 11:12:29 【问题描述】:

我使用 Qt Creator 开发 android 动态库,即 .so 文件。这个 .so 文件随后被 Android 应用程序使用,但它是在 Eclipse 中开发的。

我需要调试我的本机代码,但由于它是一个库,我无法从 Qt Creator 启动应用程序,我必须附加到已经运行的进程

现在,如果它是一个桌面应用程序,我会使用 Debug->Start Debugging->Attach to Running Application,但我如何附加到一个 Android 进程,它会在模拟器或连接的手机上运行,​​这更像是远程调试?

我认为我应该使用Debug->Start Debugging->Attach to Running Debug Server

但是,我不确定具体步骤是什么 - 如何为 ADB 启动调试服务器,以及连接到哪个端口?

【问题讨论】:

能否将eclipse项目的源码复制到Qt Creator的项目中? 【参考方案1】:

所以看起来可能有另一种方法来设置可以正确连接的调试器。

http://lists.qt-project.org/pipermail/qt-creator/2012-June/001017.html

使用此版本的 gdb 设置工具链,并设置您的项目使用它。 在工具 -> 选项 -> 调试器 -> GDB 中将您的命令插入“附加 启动命令”

...

我使用调试 -> 开始调试 -> 附加到远程。所有字段都是 那里(solib-absolute-prefix 是 sysroot 的别名,并且“位置 调试信息”是 solib-search-path),最后几个 “配置”已存储,因此您可以轻松调用它们。我有 要在目标上手动启动 gdbserver,请设置快捷方式以打开 “附加到远程”对话框,它对我来说非常有用。

它很旧(2012 年 6 月),但它更详细地介绍了 gdbserver 的启动方式以及调试器的设置和附加到 Qt 中的进程。它还提到了一些相关的环境变量:

set solib-absolute-prefix $ANDROID_SRC/out/target/product/MYPRODUCT/symbols/
set solib-search-path $ANDROID_SRC/out/target/product/MYPRODUCT/symbols/system/lib/

希望对您有所帮助。

【讨论】:

如何启动 gdbserver?我要登录adb shell 吗?我在 adb 中输入什么? github.com/mapbox/mapbox-gl-native/wiki/…【参考方案2】:

附加到adb logcat 与 Qt 以及您使用的 Android 源无关。确保可以在您的路径上找到adb.exe,例如:C:\Android\SDK\platform-tools,并且您拥有用于调试的设备的 adb 驱动程序。如果你有困难,试试这个:http://www.koushikdutta.com/post/universal-adb-driver

命令行 ADB 命令

这应该会打印出所有可以找到的连接设备:

adb devices

这会清除当前的 logcat 日志:

adb logcat -c

这将启动到 logcat 的连接:

adb logcat

通常你不必担心连接到哪个端口,因为它是由 adb 自动找到的。

通过 wifi 连接到 logcat 也是可行的。

adb tcpip
adb connect 192.168.XX.XX:5555

希望对您有所帮助。

【讨论】:

谢谢,但我不确定这如何解决我的问题。我不是在询问 logcat,我已经可以从 Eclipse 中读取 logcat 的输出。我需要在共享库中调试本机代码。调试是指设置断点,逐行跟踪/单步执行代码。 我知道在 Eclipse 中您可以设置一个源文件夹,以便在您进入库函数时使用...然后它应该显示所有可能的信息。很抱歉,我第一次错过了您的问题的意图。 我在 Qt Creator 中开发动态库,而不是在 Eclipse 中。我不能在 Eclipse 中开发它,我需要在 Qt Creator 中编译它并将二进制文件复制到 Eclipse。它使用 Qt 库的原因,所以我需要使用 Qt 的工具链。因此,其他建议也不是一种选择。我需要的是附加到 Qt Creator 的过程中 - 这是我的问题。

以上是关于从 Qt Creator 附加到 Android 进程的主要内容,如果未能解决你的问题,请参考以下文章

Qt Creator下载和安装(详细教程)

Qt Creator下载和安装(详细教程)

如何将 OpenCV 集成到 Qt Creator Android 项目中

在 Qt Creator 中包含 Python

在 Qt Creator 中启动应用程序之前,如何将我在 Qt for Android 中的 .so 文件复制到 android-build/libs/arm64-v8a 中

Qt——Ubuntu下安装Qt Creator的方法步骤总结及其界面功能与基本设置简介(Qt简介Qt Creator版本选择软件入门常用设置)