首页 > 其他分享 >调试内核,bootkernel后没有输出信息

调试内核,bootkernel后没有输出信息

时间:2022-12-23 10:22:57浏览次数:37  
标签:__ log c1107868 地址 bootkernel 调试 内核

在uboot加载内核后,只打印了Uncompressing Linux... done, booting the kernel.后面控制台没有任何输出,此时应如何调试?

内核在串口没有准备好之前会把打印信息存储在ram中,这个地址为全局变量__log_buf,基于这一点,操作如下:

1、打开System.map,找到__log_buf的地址,这个就是存放日志的起始地址0xc10c745c;

2、safe_read_lock的地址就是存放日志的结束地址0xc110745c(只是个大概地址);

3、注意不要断电,连接jlink,使用gdb工具把地址区间的数据存储到dmesg.bin中;

4、在PC linux上,使用命令:strings dmesg.bin可以打印出期望的信息了;

5、可以根据日志调试了;

 1 c10c5070 b textbuf.41826
 2 c10c5450 B early_console
 3 c10c5454 B oops_in_progress
 4 c10c5458 b always_kmsg_dump
 5 c10c545c b ext_text.42027
 6 c10c745c b __log_buf
 7 c110745c b safe_read_lock
 8 c1107460 b irq_kobj_base
 9 c1107464 b allocated_irqs
10 c1107868 b __key.21864
11 c1107868 b __key.21865
12 c1107868 b mask_lock.24111

 

标签:__,log,c1107868,地址,bootkernel,调试,内核
From: https://www.cnblogs.com/yddeboke/p/17000125.html

相关文章