什么是内核模块中的“断言”?

时间:2014-05-18 00:26:06

标签: freebsd kernel-module

我正在开发一个内核模块。如果发生特定错误,我想进入调试器或以其他方式停止执行。

如何有条件地触发错误条件

  • 在启用优化时删除

  • 在启用优化时未删除?

1 个答案:

答案 0 :(得分:3)

使用KASSERT。它与用户空间assert()略有不同;像这样使用它:

KASSERT(x == y,(“%s:%d!=%d”, func ,x,y));

如果在内核配置中定义了INVARIANTS选项,则启用KASSERT。在11-CURRENT中,它默认启用;在稳定版本中它被禁用。

相关问题