您的位置:首页 > 移动开发 > Android开发

动态调试android, ddms&ida

2015-07-16 19:15 716 查看
Android NDK R8提供四套运行时环境来支持c++特性:

System, gabi++, stlport, gnustl

Gnustl支持 C++exceptions, C++ RTTI, Standard Library. 其他的不一定全支持。

动态调试:

1. 手动添加log.v()

2. 栈跟踪 new Exception(“print trace”).printStackTrace();

3. DDMS中的Method Profiling Start/Stop Method Profiling

Android.os.Debug.startMethodTracing(“aa”); func();Android.os.Debug.stopMethodTracing

aa.trace将生成在/mnt/sdcard/aa.trace. adb pull /mnt/sdcard/aa.trace.

4. 使用IDA Pro调试android原生程序

Adb shell chmod 755 /data/local/tmp/debugnativeapp

Adb shell chmod 755 /data/local/tmp/android_server

Adb shell /data/local/tmp/android_server

Adb forward tcp:23946 tcp:23946

Menu->Debugger->run->remote ArmLinux/android dbbugger application:/data/local/tmp/debugnativeapp

directory:/data/local/tmp

hostname:localhost port:23946

点OK,ida会远程执行debugnativeapp并中断在main入口处。

5. 使用IDA Pro调试android原生动态库

Adb shell chmod 755 /data/local/tmp/android_server

Adb shell /data/local/tmp/android_server

Adb forward tcp:23946 tcp:23946

Menu->Debugger->Attach->remoteArmLinux/android dbbugger

hostname:localhost port:23946

6. 用gdb代替ida调试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: