Debug tools use the symbol table
[akaros.git] / kern / include / kdebug.h
1 #ifndef ROS_KERN_KDEBUG_H
2 #define ROS_KERN_KDEBUG_H
3
4 #include <ros/common.h>
5 #include <arch/kdebug.h>
6
7 struct symtab_entry {
8         char *name;
9         uintptr_t addr;
10 };
11
12 void backtrace(void);
13
14 /* Arch dependent, listed here for ease-of-use */
15 static inline uintptr_t get_caller_pc(void);
16
17 /* Returns a null-terminated string with the function name for a given PC /
18  * instruction pointer.  kfree() the result. */
19 char *get_fn_name(uintptr_t pc);
20
21 /* Returns the address of sym, or 0 if it does not exist */
22 uintptr_t get_symbol_addr(char *sym);
23
24 #endif /* ROS_KERN_KDEBUG_H */