还有之前问你的,为了方便debug我想打印函数调用的堆栈,而不是让他进入dump,你说的那个方法有点复杂了,我记得是不是有一个原生的方法 dump_starc
时间: 2024-03-20 17:38:58 浏览: 169
Linux 打印堆栈方法
5星 · 资源好评率100%
是的,你说的是 dump_stack() 函数,它是 Linux 内核提供的一种打印函数调用堆栈信息的方法。调用 dump_stack() 函数可以打印出当前函数调用的堆栈信息,包括函数名、文件名和行号等。这个函数定义在 include/linux/dump_stack.h 文件中,可以在驱动程序中使用。
不过需要注意的是,dump_stack() 函数会在内核日志中打印出函数调用堆栈信息,不会直接在控制台输出。如果需要在控制台输出堆栈信息,可以使用 printk() 函数,将堆栈信息打印到控制台上。
例如,在你的驱动程序中调用 dump_stack() 函数打印当前函数调用堆栈信息,可以在驱动程序中加入如下代码:
```
#include <linux/dump_stack.h>
...
void pm8xxx_rtc_set_alarm(...)
{
dump_stack();
...
}
```
这样,当应用程序设置 RTC设备的闹钟时间时,如果 pm8xxx_rtc_set_alarm() 函数被调用,就会在内核日志中打印出函数调用堆栈信息,方便进行调试。
阅读全文