从Qt Creator附加到Android进程

时间:2015-08-28 17:51:16

标签: android c++ qt remote-debugging

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

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

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

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

enter image description here

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

2 个答案:

答案 0 :(得分:3)

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

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

  

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

...

  

我使用Debug - &gt;开始调试 - &gt;连接到遥控器。所有领域都是   那里(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/

希望有所帮助。

答案 1 :(得分:1)

附加到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

希望有所帮助。