2011-09-06 94 views
3

我正在使用vs-android构建本机C++ Android应用程序。我想通过在模拟器上启动gdbserver并连接到该GDB服务器来从命令行进行调试。由于我没有使用Android构建脚本,因此我没有默认提供gdbserver。因此,我将gdbserver添加到vs-android收集它的lib文件夹中,并将其推送到APK中。该文件现在可以在我的SO所在的应用程序的lib文件夹的仿真器中找到,当我使用adb install部署应用程序时。调试使用vs-android构建的Android本地应用程序

我现在试着用run-as来运行gdbserver,但我得到错误“无法附加到进程924:操作不允许(1)”。

根据此http://ian-ni-lewis.blogspot.com/2011/05/ndk-debugging-without-root-access.html服务器应该能够附加到进程时,gdbserver启动与运行。

任何想法,我仍然可以做错吗?

+0

NDK的-gdb的脚本就是这样 - 一个shell脚本,你可以阅读和学习。看起来你没有正确地使用run-as的东西,或者它在你的设备上坏了(因为它在我的设备上)。此外,请确保被调试的apk具有Internet权限,因为gdbserver需要网络套接字,除非您通过unix域代理它。 (我期望有一个不同的错误消息,但是错误引发的误导性消息在这个世界中并不是未知的) –

回答

0

要确定问题出在run-as还是使用gdbserver,请尝试使用run-as执行“ps”而不是gdbserver,然后查看“ps”进程是否被列为具有与使用相同的用户ID应用程序的过程。如果不是,你的run-as有问题。如果它与应用程序的用户标识相同,那么gdbserver更可能出现问题。

+0

我试过这个id,它确实和运行我试图调试的应用程序的用户相同。这是我一直用来附加到进程的行:run-as com.ri.AndroidTests /data/data/com.ri.AndroidTests/lib/gdbserver:1234 --attach 285。 –

0

亚行外壳 苏-c setenforce 0 它会解决这个问题

相关问题