我正在开发一个可加载的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或您自己的自定义函数。