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