在Mac OS Mojave下调试android内核goldifish模拟器

时间:2019-02-23 17:53:46

标签: android macos debugging gdb kernel

我需要在MacOS Mojave下调试android内核金鱼。

所以我克隆了android-goldfish-3.18和android-aosp-9.0.0_r22。

我在macos下构建了aosp,而在debian下构建了内核。

很明显,我用调试符号和其他适合调试的标志构建了内核。

测试1:在AOSP仿真器中运行内核。

启动模拟器:

emulator -selinux permissive -kernel ../../goldfish/arch/x86_64/boot/bzImage -show-kernel -verbose -qemu -monitor unix:/tmp/qemuSocket,server,nowait -s -append nokaslr

启动gdb(brew安装了8.2.1版):

gdb  vmlinux

gdb with breakpoints never hitted

测试2:使用android-9设备在sdk仿真器中运行内核。

启动模拟器:

emulator -selinux permissive -avd test7 -kernel ../../goldfish_paolo/arch/x86_64/boot/bzImage  -show-kernel -verbose -qemu -monitor unix:/tmp/qemuSocket,server,nowait -s -append nokaslr

启动gdb(brew安装了8.2.1版):

gdb vmlinux

gdb inserted breakpoint => cannot insert hardware breakpoint

使用test2时,模拟器会在此处崩溃,错误:

Operating system: Mac OS X
                  10.14.2 18C54
CPU: amd64
     family 6 model 158 stepping 10
     12 CPUs

Crash reason:  EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
Crash address: 0x0
Process uptime: 41 seconds

Thread 6 (crashed)
 0  qemu-system-x86_64 + 0x10f0542
    rax = 0x0000000000000000   rdx = 0x0000000000000000
    rcx = 0x0000700008c920ac   rbx = 0x0000000107564ea0
    rsi = 0x0000000105c93fa0   rdi = 0x0000000000000030
    rbp = 0x0000700008c8e040   rsp = 0x0000700008c8e020
     r8 = 0x0000700008c8d888    r9 = 0x0000700008c8db00
    r10 = 0x0000700008c920ac   r11 = 0x0000000000000206
    r12 = 0x0000000105c97857   r13 = 0x0000000000000000
    r14 = 0x0000700008c8e070   r15 = 0x0000700008c8e070
    rip = 0x000000010564e542
    Found by: given as instruction pointer in context

有人遇到过这样的问题吗?

有人可以帮我吗?

0 个答案:

没有答案