debug方法

在android 目录下执行:

./prebuilts/gdb/linux-x86/bin/gdb  kernel/./ship_prebuilt/primary_kernel/vmlinux

具体为:./prebuilts/gdb/linux-x86/bin/gdb +vmlinux文件

注:这条指令基于android 11环境

查看crash时backtrace对应的源码

执行:list *(function+offset),例如:

Reading symbols from kernel/./ship_prebuilt/primary_kernel/vmlinux...
(gdb) list *(do_basic_setup+0x30)
0xffffffc011fd315c is in do_basic_setup (/home/workspace/lagvm/LINUX/android/kernel/msm-5.4/init/main.c:1025).
1020   
1021    static void __init do_initcalls(void)
1022    {
1023        int level;
1024   
1025        for (level = 0; level < ARRAY_SIZE(initcall_levels) - 1; level++)
1026            do_initcall_level(level);
1027    }
1028   
1029    /*
(gdb)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐