我使用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
:
但是,我不确定具体步骤是什么 - 如何为ADB启动调试服务器,以及连接到哪个端口?
答案 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 devices
这会清除当前的logcat日志:
adb logcat -c
这将启动与logcat的连接:
adb logcat
通常您不必担心要连接到哪个端口,因为它是由adb自动找到的。
通过wifi连接到logcat也是可行的。
adb tcpip
adb connect 192.168.XX.XX:5555
希望有所帮助。