Rev 4132 | Rev 4145 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4132 | Rev 4137 | ||
---|---|---|---|
Line 49... | Line 49... | ||
49 | #include <proc/task.h> |
49 | #include <proc/task.h> |
50 | #include <synch/spinlock.h> |
50 | #include <synch/spinlock.h> |
51 | #include <arch/ddi/ddi.h> |
51 | #include <arch/ddi/ddi.h> |
52 | #include <interrupt.h> |
52 | #include <interrupt.h> |
53 | #include <ddi/irq.h> |
53 | #include <ddi/irq.h> |
54 | - | ||
55 | #ifdef CONFIG_SYMTAB |
- | |
56 | #include <symtab.h> |
54 | #include <symtab.h> |
57 | #endif |
- | |
58 | 55 | ||
59 | /* |
56 | /* |
60 | * Interrupt and exception dispatching. |
57 | * Interrupt and exception dispatching. |
61 | */ |
58 | */ |
62 | 59 | ||
Line 65... | Line 62... | ||
65 | void (* eoi_function)(void) = NULL; |
62 | void (* eoi_function)(void) = NULL; |
66 | 63 | ||
67 | void decode_istate(int n, istate_t *istate) |
64 | void decode_istate(int n, istate_t *istate) |
68 | { |
65 | { |
69 | char *symbol; |
66 | char *symbol; |
70 | /* uint64_t *x = &istate->stack[0]; */ |
- | |
71 | 67 | ||
72 | #ifdef CONFIG_SYMTAB |
- | |
73 | if (!(symbol = get_symtab_entry(istate->rip))) |
68 | symbol = symtab_fmt_name_lookup((istate->rip); |
74 | symbol = ""; |
- | |
75 | #else |
- | |
76 | symbol = ""; |
- | |
77 | #endif |
- | |
78 | 69 | ||
79 | printf("-----EXCEPTION(%d) OCCURED----- ( %s )\n", n, __func__); |
70 | printf("-----EXCEPTION(%d) OCCURED----- ( %s )\n", n, __func__); |
80 | printf("%%rip: %#llx (%s)\n", istate->rip, symbol); |
71 | printf("%%rip: %#llx (%s)\n", istate->rip, symbol); |
81 | printf("ERROR_WORD=%#llx\n", istate->error_word); |
72 | printf("ERROR_WORD=%#llx\n", istate->error_word); |
82 | printf("%%cs=%#llx, rflags=%#llx, %%cr0=%#llx\n", istate->cs, |
73 | printf("%%cs=%#llx, rflags=%#llx, %%cr0=%#llx\n", istate->cs, |