以下方案
A :采用内存特定段记录问题
B :采用core文件
C:syslog虽然有时没有同步到存储介质上去,串口的打印会有作用?
D:不是所有的cpu同时挂,可否借助其它cpu记录故障内存映像?
分析
A方案将什么内容写至内存中,会有很多种情况会引起宕机,如何控制?;
若为已知的触发条件,添加自己的打印注入到内存中去?;
若产生了问题,创建什么标志提示用户查看内存中的log?(有的是重启了,但有的是正常reboot重启的也会在/proc/last_kmsg中产生打印);
内存中的东西如何写入和查看,如何创建高效查看的API?(是不是/proc/last_kmsg ?);
内存确实不会掉电?
B方案主要涉及控制core文件占用空间大小的问题
//资料
ram_console注册到printk输出的console_list中去;所以printk会时时向ram_console中输出kernel log
//手动触发宕机
https://blog.csdn.net/qq_41961459/article/details/109127592
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger # 或者Alt+SysRq+c 然后等一段时间(可能有点长,因为要把内存镜像写入到/var/crash)然后就会自动重启,重启完了之后到/var/crash下就可以看到保存下来的dmesg了
//RAM Console
https://blog.csdn.net/wh_19910525/article/details/78145542
Android系统中(driver/staging/android/ram_console.c),Ram Console驱动系统能用一段物理内存虚拟出一个console设备,这样prink输出时可以把调试信息写入RAM块中,最后通过/proc/last_kmsg输出,
//kdump
https://blog.csdn.net/wh_19910525/article/details/78145542
浙公网安备 33010602011771号