6

我已经从纯 C++ 代码构建了一个二进制可执行文件,它在 android 设备上运行时会提示时间错误。

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

4

2 回答 2

5

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

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

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

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

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

Step 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。

最后,享受你的调试吧!

于 2012-05-26T02:38:30.030 回答
-1

Android 支持使用GDB。但是,我应该注意,如果您所说的“纯 C++”是指应用程序中根本没有 Java,这在技术上是不允许的(尽管您绝对可以这样做)。请参阅NDK 页面。

于 2012-05-24T23:21:03.400 回答