使用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.  在模拟中用浏览器打开任一网页,就会进入断点了。

相关内容