从Qt Creator附加到Android进程
我使用QtCreator开发了一个Android动态库,即.so文件。这个.so文件随后被Android应用程序使用,但它是在Eclipse中开发的 我需要调试我的本机代码,但由于它是一个库,我无法从Qt Creator启动应用程序,我必须连接到已经运行的进程 现在,如果它是一个桌面应用程序,我会使用从Qt Creator附加到Android进程,android,c++,qt,remote-debugging,Android,C++,Qt,Remote Debugging,我使用QtCreator开发了一个Android动态库,即.so文件。这个.so文件随后被Android应用程序使用,但它是在Eclipse中开发的 我需要调试我的本机代码,但由于它是一个库,我无法从Qt Creator启动应用程序,我必须连接到已经运行的进程 现在,如果它是一个桌面应用程序,我会使用Debug->Start Debug->Attach to Running application,但是如何连接到Android进程,它将在模拟器或连接的手机上运行,更像是远程调试 我想我应该使用D
Debug->Start Debug->Attach to Running application
,但是如何连接到Android进程,它将在模拟器或连接的手机上运行,更像是远程调试
我想我应该使用Debug->Start Debug->Attach to Running Debug Server
:
但是,我不确定具体步骤是什么-如何启动ADB的调试服务器,以及连接到哪个端口?连接到
ADB logcat
独立于Qt和您使用的Android源代码。确保可以在路径上找到adb.exe
,例如:C:\Android\SDK\platform tools
,并且您拥有用于调试设备的adb驱动程序。如果您正在挣扎,请尝试以下方法:
命令行ADB命令
这将打印出可以找到的任何连接设备:
adb devices
这将清除当前的logcat日志:
adb logcat -c
这将启动到logcat的连接:
adb logcat
通常您不必担心要连接到哪个端口,因为它是由adb自动找到的
也可以通过wifi连接到logcat
adb tcpip
adb connect 192.168.XX.XX:5555
希望这会有所帮助。因此,似乎有另一种方法可以设置可以正确连接的调试器 使用此版本的gdb设置工具链,并将项目设置为使用它。 在工具->选项->调试器->GDB中,在“附加”中插入命令 启动命令“ 我使用调试->开始调试->附加到远程。所有的字段都是 其中(solib绝对前缀是sysroot的别名,以及“的位置”) 调试信息”是solib搜索路径),最后几条 “配置”已存储,因此您可以轻松地将其回调。我有 要在目标上手动启动gdbserver,请设置快捷方式以打开 “连接到远程”对话框,这对我来说非常有用 它很旧(2012年6月),但它更详细地介绍了如何启动
gdbserver
,以及调试器和附加到Qt中进程的设置。它还提到了一些相关的环境变量:
希望能有所帮助。谢谢,但我不确定这是如何解决我的问题的。我不是问logcat,我已经可以从Eclipse中读取logcat的输出了。我需要在共享库中调试本机代码。通过调试,我指的是设置断点,逐行跟踪/单步执行代码。我知道在eclipse中,当您单步执行库函数时,您可以设置一个sources文件夹。。。然后它应该显示所有可能的信息。很抱歉,我第一次没有理解您问题的意图。我是在QtCreator中开发动态库的,而不是在Eclipse中。我不能在Eclipse中开发它,我需要在QtCreator中编译它并将二进制文件复制到Eclipse。原因是它使用了Qt库,所以我需要使用Qt的工具链。因此,其他建议也不是一种选择。我需要的是附加到Qt Creator的进程中——这就是我的问题所在。您能够将eclipse项目的源代码复制到Qt Creator的项目中吗?我如何启动gdbserver?我是否登录到adb shell?我应该在里面打什么?
set solib-absolute-prefix $ANDROID_SRC/out/target/product/MYPRODUCT/symbols/
set solib-search-path $ANDROID_SRC/out/target/product/MYPRODUCT/symbols/system/lib/