动态调试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调试
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调试
相关文章推荐
- Android HandlerThread 源码分析
- Android串口通信
- android菜鸟学习笔记27----Fragment的简单使用
- 又来一波!Android精品源码分享
- android 之加载图片
- Android开发中Handler的经典总结
- 【Android学习】三种布局<include />、<merge />、<ViewStub />
- Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解
- Android初学之路(一)
- android studio使用
- iMX6QD How to Add 24-bit LVDS Support in Android
- 导入Android项目时遇到的问题
- Android 判断EditView是否为密码框
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
- Android中xml文件的使用
- android:showAsAction用法
- android RecyclerView 资源汇总
- Android Shader 颜色、图像渲染 paint.setXfermode
- 基于Android的计步器(Pedometer)的讲解(一)——Fragment页面跳转
- 【实习项目记录】(四)Android 实现手机验证时,按钮倒计时60s