如何在android上调试纯本机代码?

时间:2012-05-24 22:00:43

标签: android debugging native-code

我已经从纯C ++代码构建了一个二进制可删除代码,并且在Android设备上运行时会提示时间错误。

如何调试Android的纯本机代码?似乎现有方法不适用于纯本机代码。

2 个答案:

答案 0 :(得分:4)

第1步: gdbserver 未提取 本机二进制文件可执行文件 (假设它在android模拟器上命名为testexec)。例如。你可以把它放在文件夹/ data / data / test下。并使用 chmod 命令为其添加权限。

第2步:启动gdb调试器。此步骤包括以下子步骤:

步骤2.1:在主机终端上输入命令启动模拟器的gdb调试器:

 adb shell /data/data/test/gdbserver 10.0.2.2:1234 /data/data/test/testexec 

然后,模拟器将侦听端口1234。

步骤2.2 :将本地计算机的gdb调试器与模拟器的gdbserver连接:

telnet localhost 5554 

它会提示:

Android控制台:输入“帮助”以获取命令列表

确定

然后输入:

redir add tcp:1234:1234

启用数据重定向,然后键入

exit

Step2.3 :启动本地计算机的gdb调试程序。输入:

arm-linux-androideabi-gdb.exe YOUR_ EXECUTABLE_PATH_ON_LOCAL_MACHINE\testexec

之后,输入

target remote localhost:1234

连接到gdbserver。

最后,享受您的调试!

答案 1 :(得分:-1)

Android支持使用GDB。但是,我应该注意,如果通过“纯C ++”你的意思是在应用程序中根本没有Java,这在技术上是不允许的(尽管你绝对可以这样做)。见the NDK page.