git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: kernel stack tracing
[lunaix-os.git]
/
lunaix-os
/
includes
/
lunaix
/
trace.h
diff --git
a/lunaix-os/includes/lunaix/trace.h
b/lunaix-os/includes/lunaix/trace.h
index 80cf5f33ce09de2cead253cc10b17f8970f9ab74..4fbddd93d6bee23b4f9e374912efc15ab7ee9c8a 100644
(file)
--- a/
lunaix-os/includes/lunaix/trace.h
+++ b/
lunaix-os/includes/lunaix/trace.h
@@
-2,6
+2,7
@@
#define __LUNAIX_TRACE_H
#include <lunaix/boot_generic.h>
#define __LUNAIX_TRACE_H
#include <lunaix/boot_generic.h>
+#include <sys/interrupts.h>
struct ksym_entry
{
struct ksym_entry
{
@@
-9,6
+10,12
@@
struct ksym_entry
u32_t label_off;
};
u32_t label_off;
};
+struct trace_record
+{
+ ptr_t pc;
+ char* symbol;
+};
+
struct ksyms
{
u32_t ksym_count;
struct ksyms
{
u32_t ksym_count;
@@
-27,7
+34,19
@@
trace_modksyms_init(struct boot_handoff* bhctx);
struct ksym_entry*
trace_sym_lookup(ptr_t pc);
struct ksym_entry*
trace_sym_lookup(ptr_t pc);
+int
+trace_walkback(struct trace_record* tb_buffer,
+ ptr_t fp,
+ int limit,
+ ptr_t* last_fp);
+
+void
+trace_printstack_of(ptr_t fp);
+
+void
+trace_printstack_isr(const isr_param* isrm);
+
void
void
-trace_
walkback(ptr_t fp
);
+trace_
printstack(
);
#endif /* __LUNAIX_TRACE_H */
#endif /* __LUNAIX_TRACE_H */