xref: /DragonOS/kernel/src/debug/traceback/traceback.h (revision fae6e9ade46a52976ad5d099643d51cc20876448)
12813126eSlogin #pragma once
22813126eSlogin #include <common/glib.h>
32813126eSlogin #include <process/ptrace.h>
42813126eSlogin 
52813126eSlogin // 使用弱引用属性导出kallsyms中的符号表。
62813126eSlogin // 采用weak属性是由于第一次编译时,kallsyms还未链接进来,若不使用weak属性则会报错
72813126eSlogin extern const uint64_t kallsyms_address[] __attribute__((weak));
82813126eSlogin extern const uint64_t kallsyms_num __attribute__((weak));
92813126eSlogin extern const uint64_t kallsyms_names_index[] __attribute__((weak));
102813126eSlogin extern const char *kallsyms_names __attribute__((weak));
112813126eSlogin 
122813126eSlogin /**
132813126eSlogin  * @brief 追溯内核栈调用情况
142813126eSlogin  *
152813126eSlogin  * @param regs 内核栈结构体
162813126eSlogin  */
172813126eSlogin void traceback(struct pt_regs *regs);
18*fae6e9adSlinfeng uint64_t addr_from_symbol(const char *symbol);