gpt4 book ai didi

linux - 能不能在Windows上调试默认SDK Android模拟器的goldfish kernel 3.4? (即通过断点)

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:33 25 4
gpt4 key购买 nike

我需要知道我们是否可以在金鱼内核中添加一个断点并监控一些变量。请注意,我正在使用 Linux 机器交叉编译模拟器和 goldfish 内核 3.4(从 AOSP 获取)——另外正如我所说,模拟器是一个在 Windows 上运行的 .exe 进程

最佳答案

我花了几天时间寻找这个问题的答案,我发现这是可能的,答案如下:

编译goldfish 3.4打开内核配置文件调试选项

获取预构建的工具链

cd ~

git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6

通过将以下环境变量附加到 ~/.bashrc 来为预构建工具链设置环境变量

gedit ~/.bashrc

export ARCH=arm

export SUBARCH=arm

export PATH=~/arm-eabi-4.6/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH

export CROSS_COMPILE=arm-eabi-

export PATH=$PATH:~/arm-eabi-4.6/darwin-x86/toolchain/arm-eabi-4.4.3

bash # execute the bash again to re-execute the ./bashrc file

获取金鱼核

git clone https://android.googlesource.com/kernel/goldfish.git

git checkout -t origin/android-goldfish-3.4 -b goldfish3.4

配置编译goldfish内核

gedit $GOLDFISH_KERNEL_PATH/arch/arm/configs/goldfish_armv7_defconfig

Add 'CONFIG_DEBUG_INFO=y' to goldfish_armv7a_deconfig

make goldfish_armv7_defconfig

make -j8

测试新构建的金鱼内核

现在您可以在 $GOLDFISH_KERNEL_PATH/arch/arm/boot/zImage 找到新构建的内核

您还需要内核的 ELF 格式,因为它包含 gdb 所需的调试符号:$GOLDFISH_KERNEL_PATH/vmlinux

使用监听 1234 的 gdb 服务器实例启动默认的 android 模拟器

emulator-arm.exe -verbose -show-kernel -netfast -avd test -qemu -S -gdb tcp::1234,ipv4 -kernel $GOLDFISH_KERNEL_PATH/arch/arm/boot/zImage

获取适当的 gdb 版本 - 目标应该是 android arm

Download gdb for windows: https://github.com/ikonst/gdb-7.7-android

将 vmlinx 从内核根文件夹复制到您的 Windows 计算机

使用命令行启动 gdb:gdb.exe %GOLDFISH_KERNEL_PATH/vmlinux

(gdb) Set remotetimeout 10

(gdb) Set debug remote 1

(gdb) Target remote localhost:1234

(gdb) b sdhci_request

(gdb) step

(gdb) step

(gdb) cont

(gdb) etc ..

关于linux - 能不能在Windows上调试默认SDK Android模拟器的goldfish kernel 3.4? (即通过断点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38814136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com