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);