<aside> 💡 一个小测试工具,统计 crash 次数和原因,避免出现多次连续 crash 的情况
</aside>
文件操作
struct file *filp_open(const char *filename, int flags, umode_t mode)
ssize_t kernel_write(struct file *file, const void *buf,
size_t count, loff_t *pos)
static inline int __must_check kstrtol(const char *s,
unsigned int base, long *res)
crash 回调函数注册
int kmsg_dump_register(struct kmsg_dumper *dumper);
struct kmsg_dumper {
struct list_head list;
**void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason);**
enum kmsg_dump_reason max_reason;
bool active;
bool registered;
/* private state of the kmsg iterator */
...
};
(由于crash 的位置未知,这个代码不稳定,只能用于测试环境)
reboot 和 shutdown 会不会调用到注册的 crash 回调函数?
不会