Debugging 在Motorola Droid上调试本机代码
我正在试着在MotorolaDroid上用NDK调试一个应用程序构建。我正在按照说明进行操作,过去我在模拟器上获得了成功(显然我有root访问权限),但是当我尝试启动时Debugging 在Motorola Droid上调试本机代码,debugging,gdb,android-ndk,Debugging,Gdb,Android Ndk,我正在试着在MotorolaDroid上用NDK调试一个应用程序构建。我正在按照说明进行操作,过去我在模拟器上获得了成功(显然我有root访问权限),但是当我尝试启动时 gdbserver :5039 --attach 1082 通过adb shell,我得到了一个gdbserver:permission denied。显然,由于这是一个库存机器人,我没有根访问权限。有必要吗?我是不是错过了什么 提前谢谢 编辑我已确认此命令在模拟器上有效。这可以在非根设备上完成吗 编辑2我还确认了EVO 4G
gdbserver :5039 --attach 1082
通过adb shell,我得到了一个gdbserver:permission denied
。显然,由于这是一个库存机器人,我没有根访问权限。有必要吗?我是不是错过了什么
提前谢谢
编辑我已确认此命令在模拟器上有效。这可以在非根设备上完成吗
编辑2我还确认了EVO 4G上相同的权限被拒绝
错误
编辑3我还发现生产设备(如EVO 4G或Droid)不会给我“未找到”错误。例如,当我在shell中键入像
ljs
这样的随机内容时,我得到了ljs:permission denied
。如果命令存在且我无法访问它(sudo-推测),或者如果命令不存在(ljs),则错误是相同的。根据
gdbserver :5039 --attach pid
gdbserver:5039--附加pid
在你给出的链接中-手机上的链接中…你转发了端口了吗
adb forward tcp:5039 tcp:5039
adb转发tcp:5039 tcp:5039
从工作站
此外:
如果找不到任何一个特殊版本的gdb,请运行find prebuild-name
在源代码树中配置eabi gdb以查找并运行最新版本
您是否尝试过使用“arm eabi gdb”,将上述gdb替换为显式版本?如果您使用的是r4 NDK,您不必做很多这类工作。相反:
我没有运气就删除了
localhost
。我没有在我的主机上尝试过任何版本的gdb,因为我无法在设备上启动服务器。我不确定…但是你不需要Android 2.2来调试gdb吗?你的Droid上有Android 2.2吗?我没有,而且据我记忆所及,gdb指令/NDK在2.2之前就已经存在了。有人能证实这一点吗?我认为即使是非“根”设备也可以通过adb运行su
来访问特权控制台命令,但我还没有尝试过。如果有效,请告诉我,我会给出正确的答案。@Walter无论是sudo
还是su
都不起作用:它们都会导致权限被拒绝
错误。还有其他想法吗?
If you can't find either special version of gdb, run find prebuilt -name
arm-eabi-gdb in your source tree to find and run the latest version