使用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. 输入法软键盘搜索执行两次的解决方法
  2. Android线程池
  3. android的Intent
  4. 【漫漫安卓路之承】android tips
  5. 详解Android中AsyncTask的使用
  6. 用 SDK Manager.exe 无法更新 Android(安卓)SDK Tools 的解决办
  7. 关于Android(安卓)横竖屏切换(避免Activity在转屏时销毁)
  8. Android系统框架
  9. 在Android中使用Handler和Thread线程执行后台操作

随机推荐

  1. 定制一个Android的Launcher(Home)
  2. Android入门:架构与组件
  3. 华清远见专家解读Android开发者成长之路
  4. Android(安卓)监听Home键按键事件
  5. android学习六(android中四种基本布局)
  6. 在Android模拟器中安装和卸载apk应用
  7. Android开发学习笔记之 获得Android(安卓
  8. Android中的蓝牙Bluetooth应用开发基础
  9. Android中SQLite应用详解
  10. Android学习笔记(一)――Android应用的界面