/trunk/kernel/arch/sparc64/src/trap/exception.c |
---|
40,14 → 40,25 |
#include <arch/asm.h> |
#include <arch/register.h> |
#include <debug.h> |
#include <symtab.h> |
#include <print.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
void dump_istate(istate_t *istate) |
{ |
char *tpcs, *tnpcs; |
#ifdef CONFIG_SYMTAB |
tpcs = get_symtab_entry(istate->tpc); |
tnpcs = get_symtab_entry(istate->tnpc); |
#else |
tpcs = tnpcs = "n/a"; |
#endif |
printf("TSTATE=%#" PRIx64 "\n", istate->tstate); |
printf("TPC=%#" PRIx64 " (%s)\n", istate->tpc, get_symtab_entry(istate->tpc)); |
printf("TNPC=%#" PRIx64 " (%s)\n", istate->tnpc, get_symtab_entry(istate->tnpc)); |
printf("TPC=%#" PRIx64 " (%s)\n", istate->tpc, tpcs); |
printf("TNPC=%#" PRIx64 " (%s)\n", istate->tnpc, tnpcs); |
} |
/** Handle instruction_access_exception. (0x8) */ |
/trunk/kernel/arch/ia64/src/interrupt.c |
---|
38,7 → 38,6 |
#include <ddi/irq.h> |
#include <panic.h> |
#include <print.h> |
#include <symtab.h> |
#include <debug.h> |
#include <console/console.h> |
#include <arch/types.h> |
55,6 → 54,10 |
#include <synch/spinlock.h> |
#include <mm/tlb.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
#define VECTORS_64_BUNDLE 20 |
#define VECTORS_16_BUNDLE 48 |
#define VECTORS_16_BUNDLE_START 0x5000 |
137,9 → 140,13 |
{ |
char *ifa, *iipa, *iip; |
#ifdef CONFIG_SYMTAB |
ifa = get_symtab_entry(istate->cr_ifa); |
iipa = get_symtab_entry(istate->cr_iipa); |
iip = get_symtab_entry(istate->cr_iip); |
#else |
ifa = iipa = iip = "n/a"; |
#endif |
putchar('\n'); |
printf("Interrupted context dump:\n"); |
/trunk/kernel/arch/ppc32/src/mm/tlb.c |
---|
39,9 → 39,11 |
#include <mm/as.h> |
#include <arch.h> |
#include <print.h> |
#include <symtab.h> |
#include <macros.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
static unsigned int seed = 10; |
static unsigned int seed_real __attribute__ ((section("K_UNMAPPED_DATA_START"))) = 42; |
121,6 → 123,7 |
char *symbol = ""; |
char *sym2 = ""; |
#ifdef CONFIG_SYMTAB |
char *str = get_symtab_entry(istate->pc); |
if (str) |
symbol = str; |
127,6 → 130,7 |
str = get_symtab_entry(istate->lr); |
if (str) |
sym2 = str; |
#endif |
fault_if_from_uspace(istate, |
"PHT Refill Exception on %p.", badvaddr); |
/trunk/kernel/arch/amd64/src/debugger.c |
---|
35,7 → 35,6 |
#include <arch/debugger.h> |
#include <console/kconsole.h> |
#include <console/cmd.h> |
#include <symtab.h> |
#include <print.h> |
#include <panic.h> |
#include <interrupt.h> |
45,6 → 44,10 |
#include <func.h> |
#include <smp/ipi.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
typedef struct { |
uintptr_t address; /**< Breakpoint address */ |
int flags; /**< Flags regarding breakpoint */ |
229,8 → 232,13 |
*((unative_t *) breakpoints[slot].address)); |
} |
} |
#ifdef CONFIG_SYMTAB |
printf("Reached breakpoint %d:%lx(%s)\n", slot, getip(istate), |
get_symtab_entry(getip(istate))); |
#else |
printf("Reached breakpoint %d:%lx\n", slot, getip(istate)); |
#endif |
#ifdef CONFIG_KCONSOLE |
atomic_set(&haltstate, 1); |
355,7 → 363,11 |
for (i = 0; i < BKPOINTS_MAX; i++) |
if (breakpoints[i].address) { |
#ifdef CONFIG_SYMTAB |
symbol = get_symtab_entry(breakpoints[i].address); |
#else |
symbol = "n/a"; |
#endif |
#ifdef __32_BITS__ |
printf("%-2u %-5d %#10zx %s\n", i, |
/trunk/kernel/arch/amd64/src/interrupt.c |
---|
43,7 → 43,6 |
#include <mm/tlb.h> |
#include <mm/as.h> |
#include <arch.h> |
#include <symtab.h> |
#include <arch/asm.h> |
#include <proc/scheduler.h> |
#include <proc/thread.h> |
53,6 → 52,10 |
#include <interrupt.h> |
#include <ddi/irq.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
/* |
* Interrupt and exception dispatching. |
*/ |
66,8 → 69,12 |
char *symbol; |
/* uint64_t *x = &istate->stack[0]; */ |
#ifdef CONFIG_SYMTAB |
if (!(symbol = get_symtab_entry(istate->rip))) |
symbol = ""; |
#else |
symbol = ""; |
#endif |
printf("-----EXCEPTION(%d) OCCURED----- ( %s )\n", n, __func__); |
printf("%%rip: %#llx (%s)\n", istate->rip, symbol); |
/trunk/kernel/arch/mips32/src/exception.c |
---|
41,7 → 41,6 |
#include <arch.h> |
#include <debug.h> |
#include <proc/thread.h> |
#include <symtab.h> |
#include <print.h> |
#include <interrupt.h> |
#include <func.h> |
48,6 → 47,10 |
#include <ddi/irq.h> |
#include <arch/debugger.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
static char * exctable[] = { |
"Interrupt", |
"TLB Modified", |
76,6 → 79,7 |
char *pcsymbol = ""; |
char *rasymbol = ""; |
#ifdef CONFIG_SYMTAB |
char *s = get_symtab_entry(istate->epc); |
if (s) |
pcsymbol = s; |
82,6 → 86,7 |
s = get_symtab_entry(istate->ra); |
if (s) |
rasymbol = s; |
#endif |
printf("PC: %#x(%s) RA: %#x(%s), SP(%p)\n", istate->epc, pcsymbol, istate->ra, rasymbol, istate->sp); |
} |
/trunk/kernel/arch/mips32/src/debugger.c |
---|
37,7 → 37,6 |
#include <memstr.h> |
#include <console/kconsole.h> |
#include <console/cmd.h> |
#include <symtab.h> |
#include <print.h> |
#include <panic.h> |
#include <arch.h> |
44,6 → 43,10 |
#include <arch/cp0.h> |
#include <func.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
bpinfo_t breakpoints[BKPOINTS_MAX]; |
SPINLOCK_INITIALIZE(bkpoint_lock); |
259,7 → 262,11 |
for (i = 0; i < BKPOINTS_MAX; i++) |
if (breakpoints[i].address) { |
#ifdef CONFIG_SYMTAB |
symbol = get_symtab_entry(breakpoints[i].address); |
#else |
symbol = "n/a"; |
#endif |
printf("%-2u %-5d %#10zx %-6s %-7s %-8s %s\n", i, |
breakpoints[i].counter, breakpoints[i].address, |
348,9 → 355,14 |
if (cur->flags & BKPOINT_INPROG) |
printf("Warning: breakpoint recursion\n"); |
if (!(cur->flags & BKPOINT_FUNCCALL)) |
if (!(cur->flags & BKPOINT_FUNCCALL)) { |
#ifdef CONFIG_SYMTAB |
printf("***Breakpoint %d: %p in %s.\n", i, fireaddr, |
get_symtab_entry(istate->epc)); |
#else |
printf("***Breakpoint %d: %p.\n", i, fireaddr); |
#endif |
} |
/* Return first instruction back */ |
((uint32_t *)cur->address)[0] = cur->instruction; |
363,8 → 375,12 |
} |
cur->flags |= BKPOINT_INPROG; |
} else { |
printf("***Breakpoint %p in %s.\n", fireaddr, |
#ifdef CONFIG_SYMTAB |
printf("***Breakpoint %p in %s.\n", fireaddr, |
get_symtab_entry(fireaddr)); |
#else |
printf("***Breakpoint %p.\n", fireaddr); |
#endif |
/* Move on to next instruction */ |
istate->epc += 4; |
} |
/trunk/kernel/arch/mips32/src/mm/tlb.c |
---|
40,7 → 40,6 |
#include <arch/cp0.h> |
#include <panic.h> |
#include <arch.h> |
#include <symtab.h> |
#include <synch/mutex.h> |
#include <print.h> |
#include <debug.h> |
47,6 → 46,10 |
#include <align.h> |
#include <interrupt.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
static void tlb_refill_fail(istate_t *); |
static void tlb_invalid_fail(istate_t *); |
static void tlb_modified_fail(istate_t *); |
323,6 → 326,7 |
char *symbol = ""; |
char *sym2 = ""; |
#ifdef CONFIG_SYMTAB |
char *s = get_symtab_entry(istate->epc); |
if (s) |
symbol = s; |
329,6 → 333,7 |
s = get_symtab_entry(istate->ra); |
if (s) |
sym2 = s; |
#endif |
fault_if_from_uspace(istate, "TLB Refill Exception on %p.", |
cp0_badvaddr_read()); |
341,9 → 346,12 |
{ |
char *symbol = ""; |
#ifdef CONFIG_SYMTAB |
char *s = get_symtab_entry(istate->epc); |
if (s) |
symbol = s; |
#endif |
fault_if_from_uspace(istate, "TLB Invalid Exception on %p.", |
cp0_badvaddr_read()); |
panic("%x: TLB Invalid Exception at %x(%s).", cp0_badvaddr_read(), |
354,9 → 362,12 |
{ |
char *symbol = ""; |
#ifdef CONFIG_SYMTAB |
char *s = get_symtab_entry(istate->epc); |
if (s) |
symbol = s; |
#endif |
fault_if_from_uspace(istate, "TLB Modified Exception on %p.", |
cp0_badvaddr_read()); |
panic("%x: TLB Modified Exception at %x(%s).", cp0_badvaddr_read(), |
/trunk/kernel/arch/ia32/src/interrupt.c |
---|
44,7 → 44,6 |
#include <mm/tlb.h> |
#include <mm/as.h> |
#include <arch.h> |
#include <symtab.h> |
#include <proc/thread.h> |
#include <proc/task.h> |
#include <synch/spinlock.h> |
53,6 → 52,10 |
#include <interrupt.h> |
#include <ddi/irq.h> |
#ifdef CONFIG_SYMTAB |
#include <symtab.h> |
#endif |
/* |
* Interrupt and exception dispatching. |
*/ |
63,10 → 66,15 |
void decode_istate(istate_t *istate) |
{ |
char *symbol = get_symtab_entry(istate->eip); |
char *symbol; |
#ifdef CONFIG_SYMTAB |
symbol = get_symtab_entry(istate->eip); |
if (!symbol) |
symbol = ""; |
#else |
symbol = ""; |
#endif |
if (CPU) |
printf("----------------EXCEPTION OCCURED (cpu%u)----------------\n", CPU->id); |