dump_stack函数可以帮助我们回溯内核调用栈的先后顺序,比如:
本文基于5.15.133版本讨论dump_stack在ARM64架构上的实现。
dump_stack的实现与架构有关,但是原理都是通过回溯栈帧。
在ARM64架构上,栈回溯的实现在arch/arm64/kernel/stacktrace.c的dump_backtrace函数中实现,其调用的流程是:
编号 |
函数 |
文件 |
1 |
dump_stack |
lib/dump_stack.c |
2 |
dump_stack_lvl |
|
3 |
__dump_stack |
|
4 |
show_stack |
arch/arm64/kernel/stacktrace.c |
5 |
dump_backtrace |