gdbserver调试android ndk程序
gdbserver调试android ndk程序
- 原理:
转发本机xx端口的数据到模拟器xxx端口去拉。。
然后本机启动gdb 使用targer remote 指令调试远程主机,
也就是本机的12345端口拉,由于被adb 做了转发,那么
我们在这里的调试发送到12345端口的数据,被转发
到模拟器的12345端口,也就是gdbserver监听的端口拉。。
- 上传ndk prebuild 提供的gdbserver到tmp目录
cd E:\Softs\android-ndk-r10e-windows-x86\android-ndk-r10e\prebuilt\android-x86\gdbserver
gdb push gdbserver /data/local/tmp - 修改可执行权限
adb shell chmod 777 /data/local/tmp/gdbserver - adb 端口转发
adb forward tcp:12345 tcp:12345 - 启动 gdbserver, 监听端口,指定调试的ndk程序
/data/local/tmp/gdbserver 0.0.0.0:12345 /data/local/tmp/hello
附加方式调试jinc:
/data/local/tmp/gdbserver :12345 –attach 7612 - pc 使用gdb发送信号调试
E:\Softs\android-ndk-r10e-windows-x86\android-ndk-r10e\toolchains\x86-4.9\prebuilt\windows\bin\i686-linux-android-gdb.exe
gdb
target remote 127.0.0.1:12345
r
b main
c
- 返回gdbserver cmd窗口查看运行输出。。
hello NDK!