1.so库用ndk-build NDK_DEBUG=1编译,
2.先在eclipse中调用jni处打一断点,开启java调试,运行到断点处。
3.在cygwin命令行中切换到工程目录下,开启ndk-gdb进行调试本地代码,list查看本地源码(用list时一定确保java已经导入了对应的so库,调试系统自动判断主文件,调用list自动打开源文件),在源码上打上断点,然后continue,
4.在eclipse中点击继续调试。
5.这时在cygwin中就停在了本地代码上了,然后可以用标准的gdb调试了。
单独的native调试。
1.eclipse
debug as->Android Native Application用此项调试时一定要等native调试器启动后,再开始操作应用去执行本地代码。
2.ndk-gdb
在设备上装dubug版的apk,然后运行ndk-gdb --start 开始调试。(一定要保证程序运 行时对应的so已经导入在java中成功导入了,不然list不能显示源码,也就是不能调试)
附gdb常用命令。
查看源代码list
断点break 行号; 查看断点 info breakpoints;
开始 start
运行到断点 continue
单步 next
进入函数 step
跳出函数finish
查看本地变量值 info locals; 打印变量 print; 变量修改变量值set;
跟踪变量 watch 变量; display 变量;
查看函数调用栈 backstrace;
退出quit
从头开始连续执行程序 run