我需要在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
有人遇到过这样的问题吗?
有人可以帮我吗?