【问题标题】:What's the equivalent of raise(SIGTRAP) in Linux kernel module?Linux 内核模块中 raise(SIGTRAP) 的等价物是什么?
【发布时间】:2014-05-05 09:14:14
【问题描述】:

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

说,我的模块有如下功能:

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

raise(SIGTRAP) 可以在内核模式下使用。内核模式下是否有raise(SIGTRAP)的等价物?

【问题讨论】:

    标签: c linux debugging kernel signals


    【解决方案1】:

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

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

    【讨论】:

    • Windows内核下,有一个函数DbgBreakPoint();我只想要它的等价物。
    • @xmllmx:如果没有等价物,你会怎么做?
    • 我将使用 GDB 的命令:break(待处理)并在这种情况下继续。
    猜你喜欢
    • 1970-01-01
    • 2020-07-19
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多