我正在使用vs-android来构建原生C ++ Android应用程序。我想通过在模拟器上启动gdbserver并连接到该GDB服务器来从命令行进行调试。由于我没有使用Android构建脚本,因此默认情况下不会提供gdbserver。所以我将gdbserver添加到lib文件夹中,vs-android收集它并将其推送到APK。现在可以在应用程序的lib文件夹中的模拟器上找到该文件,当我使用adb install部署应用程序时,我的SO也位于该文件夹中。
我现在尝试使用run-as运行gdbserver,但是我收到错误“无法附加到进程924:操作不允许(1)”。
根据此http://ian-ni-lewis.blogspot.com/2011/05/ndk-debugging-without-root-access.html,当使用run-as启动gdbserver时,服务器应该能够附加到进程。
关于我仍然可能做错的任何想法?
答案 0 :(得分:0)
要确定问题是使用run-as还是使用gdbserver,请尝试使用run-as执行'ps'而不是gdbserver,然后查看'ps'进程是否列为具有与之相同的用户ID应用程序的过程。如果没有,那么run-as就会出现问题。如果它与应用程序的用户ID相同,则gdbserver更有可能出现此问题。
答案 1 :(得分:0)
adb shell su -c setenforce 0 它会解决问题