【问题标题】:What is 'assert' in a kernel module?内核模块中的“断言”是什么?
【发布时间】:2014-07-06 05:08:36
【问题描述】:

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

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

  • 在启用优化时移除

  • 启用优化时哪个不会删除?

【问题讨论】:

    标签: freebsd kernel-module


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多