xref: /DragonOS/kernel/src/debug/traceback/traceback.h (revision fae6e9ade46a52976ad5d099643d51cc20876448)
1 #pragma once
2 #include <common/glib.h>
3 #include <process/ptrace.h>
4 
5 // 使用弱引用属性导出kallsyms中的符号表。
6 // 采用weak属性是由于第一次编译时,kallsyms还未链接进来,若不使用weak属性则会报错
7 extern const uint64_t kallsyms_address[] __attribute__((weak));
8 extern const uint64_t kallsyms_num __attribute__((weak));
9 extern const uint64_t kallsyms_names_index[] __attribute__((weak));
10 extern const char *kallsyms_names __attribute__((weak));
11 
12 /**
13  * @brief 追溯内核栈调用情况
14  *
15  * @param regs 内核栈结构体
16  */
17 void traceback(struct pt_regs *regs);
18 uint64_t addr_from_symbol(const char *symbol);