0%

2024-03-22-调试ART虚拟机

1
ln -s /Volumes/android/aosp/art .       #.是当前项目工程

或者你可以在lldb中将源码目录映射到我们的工程

1
settings set target.source-map /Volumes/android/aosp/art /Users/juneleo/demo/android-native-debug
  • 复制libart.so symbol

    1
    cp /Volumes/android/aosp/out/target/product/coral/symbols/apex/com.android.runtime.debug/lib64/libart.so  symbols/libart.so

    带符号的libart.so 在aosp 的out/target/product/coral/symbols/apex/com.android.runtime.debug/lib64/ 目录下
    image.png

  • Run/Debug Configuration Debugger中的Debug Type配置为 Native Only

image.png

  • 开始调试

image.png

  • 断点

image.png
此时我们点击红框中的art代码,我们可以看到是一堆指令代码
image.png

  • 接着我们把libart.so 符号文件告诉调试器

image.png

1
add-dsym /Users/juneleo/demo/android-native-debug/symbols/libart.so

或者也可以直接在Run/Debug Configuration Debugger 配置
image.png

  • 重新debug

image.png