当前位置: 技术问答>linux和unix
如何让内核崩溃????
来源: 互联网 发布时间:2016-05-10
本文导语: 因为要测试核心转储功能,先得把核心整崩溃了。不知道怎么搞,哪位大侠提点一下啊? | 在模块当中插入BUG_ON(1)。 例如: #include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void)...
因为要测试核心转储功能,先得把核心整崩溃了。不知道怎么搞,哪位大侠提点一下啊?
|
在模块当中插入BUG_ON(1)。
例如:
例如:
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
BUG_ON(1);
printk(KERN_ALERT "Hello, worldn");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);
module_exit(hello_exit);
|
插入以下代码,肯定崩溃:
*((int *)0) = 0;
|
空指针很简单。
char * tmp;
printk("%s", tmp);
tmp就是就是一个空指针。
char * tmp;
printk("%s", tmp);
tmp就是就是一个空指针。
|
LZ, please email to wxywh@163.com
and I will sent the source code to you.
and I will sent the source code to you.
|
很简单,写个模块,操作空指针,加载,这样就可以kernel panic了
|
用Alt+SysRq+C前需要先启用这个功能:
echo 1 > /proc/sys/kernel/sysrq
也可以直接
echo 'c' > /proc/sysrq-trigger
这两个方法都可以强制内核崩溃,但是否会产生dump还要取决于有没有正确配置netdump/kdump/diskdump等工具。
echo 1 > /proc/sys/kernel/sysrq
也可以直接
echo 'c' > /proc/sysrq-trigger
这两个方法都可以强制内核崩溃,但是否会产生dump还要取决于有没有正确配置netdump/kdump/diskdump等工具。
|
char *p = NULL;
int i;
for(i=0;i++;i
int i;
for(i=0;i++;i