Мне нужно отладить золотую рыбку ядра Android под MacOS Mojave.
Итак, я клонировал android-goldfish-3.18 и android-aosp-9.0.0_r22.
Я создал aosp под macos, покаЯдро под 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 (версия 8.2.1 установлена с brew):
gdb vmlinux
GDB с точками останова, которые никогда не выполняются
Тест 2:Запуск ядра в эмуляторе SDK с устройством Android-9.
Запустите эмулятор:
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 (версия 8.2.1 установлена с Brew):
gdb vmlinux
gdb вставил точку останова => не может вставить аппаратную точку останова
С 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
Кто-нибудь сталкивался с некоторыми из этих проблем?
Может кто-нибудь мне помочь?