我已经从纯C ++代码构建了一个二进制可删除代码,并且在Android设备上运行时会提示时间错误。
如何调试Android的纯本机代码?似乎现有方法不适用于纯本机代码。
答案 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.