Linux kernel 如何在自己的内核模块中生成堆栈跟踪

Linux kernel 如何在自己的内核模块中生成堆栈跟踪,linux-kernel,kernel,Linux Kernel,Kernel,我想生成一个堆栈跟踪报告,就像内核oops生成的一样 -----------[此处剪切]----------- 内核BUG位于/home/administrator/project/systech/bsp_tan/linux-.2.6/arch/arm/include/asm/dmamapping.h:325 Internal error: Oops - undefined instruction: 0 [#1] PREEMPT Modules linked in: CPU: 0 Not

我想生成一个堆栈跟踪报告,就像内核oops生成的一样

-----------[此处剪切]-----------

内核BUG位于/home/administrator/project/systech/bsp_tan/linux-.2.6/arch/arm/include/asm/dmamapping.h:325

Internal error: Oops - undefined instruction: 0 [#1] PREEMPT
Modules linked in:
CPU: 0    Not tainted  (3.2.6 #67)
PC is at my_func+0x118/0x230
LR is at vprintk+0x3bc/0x440
它是在哪里定义的,以及如何在我的模块中触发它

编辑1

如何找到发生此错误时PC(程序计数器)所在的行号

PC位于my_func+0x118/0x230

这意味着什么


提前感谢。

这在以下文件中:

 lib/bug.c
 kernel/panic.c

谢谢,我们可以使用模块或驱动程序中的这些文件和函数来跟踪寄存器和堆栈吗?您可以在模块内调用WARN_ON(1)来获得相同的报告。只需包含asm generic/bug.hTry
dump\u stack()
函数。。。