os_slab_overflow
所属模块:内存管理 | 类型:Slab溢出处理函数
函数简介
:contentReference[oaicite:0]{index=0} 用于处理系统 Slab 内存溢出事件。
当检测到内存分配异常时,将触发该函数进行统一处理。
该函数优先调用用户注册的 overflow hook,如果未注册,则进入默认死循环保护状态以防止系统继续运行在不安全状态。
函数原型
void os_slab_overflow(void);
源码实现
void (*g_slab_overflow_hook)(void);
void os_slab_overflow(void)
{
if (g_slab_overflow_hook)
{
g_slab_overflow_hook();
}
else
{
/* 默认行为(防止空) */
while (1);
}
}
使用示例
void slab_overflow_handler(void)
{
// 记录错误或重启系统
}
void system_init(void)
{
os_slab_overflow_register(slab_overflow_handler);
}
注意事项
该函数可能在系统严重错误路径中触发,一旦进入默认死循环,将阻断整个系统运行。
建议始终注册自定义 hook 以便进行错误恢复或日志记录。