Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kernel Linux内核BUG()调用不会挂起内核_Kernel_Smp - Fatal编程技术网

Kernel Linux内核BUG()调用不会挂起内核

Kernel Linux内核BUG()调用不会挂起内核,kernel,smp,Kernel,Smp,我运行的是旧版本的linux代码(2.6.27)。我已经定义了CONFIG_BUG=y和ARCH_BUG。因此,我在asm-x86/BUG.h中使用了BUG()定义,而不是asm泛型。 我看到,当我insmod一个测试模块(它只有一个BUG()调用)时,它不会使盒子崩溃。我能够到达控制台。这是一个SMP系统,所以我希望如此。 我的问题是,根据设计,BUG()是否应该像恐慌一样挂起盒子?如果是这样的话,为什么它不在这个内核上 thx MuraliBUG()本身不应该挂起盒子,因此系统的行为是正常的

我运行的是旧版本的linux代码(2.6.27)。我已经定义了CONFIG_BUG=y和ARCH_BUG。因此,我在asm-x86/BUG.h中使用了BUG()定义,而不是asm泛型。 我看到,当我insmod一个测试模块(它只有一个BUG()调用)时,它不会使盒子崩溃。我能够到达控制台。这是一个SMP系统,所以我希望如此。 我的问题是,根据设计,BUG()是否应该像恐慌一样挂起盒子?如果是这样的话,为什么它不在这个内核上

thx Murali

BUG()
本身不应该挂起盒子,因此系统的行为是正常的

在x86上,
BUG()
最终尝试执行
ud2
机器指令,导致“操作码无效”异常。这取决于内核如何处理,是输出消息并继续工作还是停止。不同的内核可能会以不同的方式做出反应。

BUG()
本身不应该挂起盒子,因此系统的行为是正常的


在x86上,
BUG()
最终尝试执行
ud2
机器指令,导致“操作码无效”异常。这取决于内核如何处理,是输出消息并继续工作还是停止。不同的内核可能会以不同的方式反应。

这是x86,对吗?是的,这是x86 32位系统。这是x86,对吗?是的,这是x86 32位系统。Thx,我现在看到了。BUG正在调用ud2,ud2调用了die。除非在oops上或在中断上下文中出现死机,否则在这种情况下,它只返回带有信号传递(SIGSEGV)的出口。Thx,我现在看到了。BUG正在调用ud2,ud2调用了die。除非在oops上或在中断上下文中出现死机,否则在这种情况下,它只返回带有信号传递(SIGSEGV)的出口。