转载http://blog.csdn.net/su_yong/article/details/7021389

使用GDB调试Android 4.0中的WebKit


昨天在网上看到了有人用gdb调试Android中的WebKit,今天试了好一会儿,确实可行。

以下是步骤:


1. 进入android系统源码根目录,然后执行

source build/envsetup.sh


2. 启动模拟器,并打开浏览器

emulator


3. 在终端中执行

adb forward tcp:5039 tcp:5039


4. 打开另一个终端,执行

adb shell ps

找到 com.android.browser 进程号


5. 执行

adb shell gdbserver :5039 --attach pid

pid为 com.android.browser 进行号

正常反馈:

Attached; pid = ****

Listening on port 5039


6. 回到第一个终端,导出环境变量,adb, arm-eabi-gdb等的路径,在执行gdbclient报错时,可将相应的命令 的路径导出

export PATH=/android/out/host/linux-x86/sdk/android-sdk_eng.suyong_linux-x86/platform-tools:$PATH
export PATH=/android/prebuilt/./prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/:$PATH
export PATH=/android/prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin:$PATH


现在执行命令

gdbclient

成功的话就会加载一系列的符号表。试了一下设置断点,成功地在代码中中断了下来。下面要做的就 是熟悉GDB调试命令了。


7. 在gdb中设置断点

b FrameLoaderClientAndroid.cpp:888


8. 在模拟中用浏览器打开任一网页,就会进入断点了。


我主要参考了http://blog.csdn.net/zouxueping/article/details/5877970,在此表示感谢,另外也参考了一下http://blog.csdn.net/dlmu2001/article/details/6904211 。

更多相关文章

  1. GDB + gdbserver 远程调试android native code
  2. Android自动化测试之MonkeyRunner录制和回放脚本(十一)
  3. Android事务 IMMEDIATE与EXCLUSIVE模式
  4. [转]Android(安卓)onActivityResult()不执行的几个原因
  5. android,bindService实例
  6. #android training# Graphics & Animation:Display Bitmaps Effi
  7. 制约Android发展的三大难题
  8. Android中AsyncTask详解,源码剖析(API 23)
  9. Android执行命令行命令(获取系统Logcat)

随机推荐

  1. Android(安卓)触摸事件的传递过程
  2. 高通平台GPIO pinctrl调试心得
  3. Android处理Home键方法小结
  4. android中常用的开源项目
  5. android中的surfaceSurface、SurfaceHold
  6. Android(安卓)Studio: Application Insta
  7. View的工作原理(Android开发艺术探索读书
  8. Android(安卓)源码分析实战 - 把代码写得
  9. Android(安卓)Dialog种类大全,让Activity
  10. setDefaultKeyMode 用法介绍