我正在开发一个可加载的Linux内核模块。如果代码遇到未知错误,我想将执行分为远程GDB调试器。

说,我的模块具有以下功能:

void hello()
{
    // ...
    if (something_occured)
    {
        // raise(SIGTRAP) or __asm__ __volatile__("int 3"); ???
        // What should be put here ???
    }
}


可以在内核模式下使用raise(SIGTRAP)。内核模式下raise(SIGTRAP)是否等效?

最佳答案

如果没有远程调试器在运行,您希望代码做什么?这样做,并在其上设置一个断点。

它可能是BUG,BUG_ON或WARN_ON或您自己的自定义函数。

10-08 18:31