Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4136 → Rev 4137

/trunk/kernel/arch/mips32/src/exception.c
46,10 → 46,7
#include <func.h>
#include <ddi/irq.h>
#include <arch/debugger.h>
 
#ifdef CONFIG_SYMTAB
#include <symtab.h>
#endif
 
static char * exctable[] = {
"Interrupt",
76,19 → 73,13
 
static void print_regdump(istate_t *istate)
{
char *pcsymbol = "";
char *rasymbol = "";
char *pcsymbol, *rasymbol;
 
#ifdef CONFIG_SYMTAB
char *s = get_symtab_entry(istate->epc);
if (s)
pcsymbol = s;
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);
pcsymbol = symtab_fmt_name_lookup(istate->epc);
rasymbol = symtab_fmt_name_lookup(istate->ra);
 
printf("PC: %#x(%s) RA: %#x(%s), SP(%p)\n", istate->epc, pcsymbol,
istate->ra, rasymbol, istate->sp);
}
 
static void unhandled_exception(int n, istate_t *istate)
/trunk/kernel/arch/mips32/src/debugger.c
42,10 → 42,7
#include <arch.h>
#include <arch/cp0.h>
#include <func.h>
 
#ifdef CONFIG_SYMTAB
#include <symtab.h>
#endif
 
bpinfo_t breakpoints[BKPOINTS_MAX];
SPINLOCK_INITIALIZE(bkpoint_lock);
262,12 → 259,9
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
symbol = symtab_fmt_name_lookup(
breakpoints[i].address);
 
printf("%-2u %-5d %#10zx %-6s %-7s %-8s %s\n", i,
breakpoints[i].counter, breakpoints[i].address,
((breakpoints[i].flags & BKPOINT_INPROG) ? "true" :
356,12 → 350,8
printf("Warning: breakpoint recursion\n");
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
symtab_fmt_name_lookup(istate->epc));
}
 
/* Return first instruction back */
375,12 → 365,9
}
cur->flags |= BKPOINT_INPROG;
} else {
#ifdef CONFIG_SYMTAB
printf("***Breakpoint %p in %s.\n", fireaddr,
get_symtab_entry(fireaddr));
#else
printf("***Breakpoint %p.\n", fireaddr);
#endif
printf("***Breakpoint %d: %p in %s.\n", i, fireaddr,
symtab_fmt_name_lookup(fireaddr));
 
/* Move on to next instruction */
istate->epc += 4;
}
/trunk/kernel/arch/mips32/src/mm/tlb.c
45,10 → 45,7
#include <debug.h>
#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 *);
323,21 → 320,14
 
void tlb_refill_fail(istate_t *istate)
{
char *symbol = "";
char *sym2 = "";
char *symbol, *sym2;
 
#ifdef CONFIG_SYMTAB
char *s = get_symtab_entry(istate->epc);
if (s)
symbol = s;
s = get_symtab_entry(istate->ra);
if (s)
sym2 = s;
#endif
 
symbol = symtab_fmt_name_lookup(istate->epc);
sym2 = symtab_fmt_name_lookup(istate->ra);
fault_if_from_uspace(istate, "TLB Refill Exception on %p.",
cp0_badvaddr_read());
panic("%x: TLB Refill Exception at %x(%s<-%s).", cp0_badvaddr_read(),
panic("%x: TLB Refill Exception at %x (%s<-%s).", cp0_badvaddr_read(),
istate->epc, symbol, sym2);
}
 
344,33 → 334,25
 
void tlb_invalid_fail(istate_t *istate)
{
char *symbol = "";
char *symbol;
 
#ifdef CONFIG_SYMTAB
char *s = get_symtab_entry(istate->epc);
if (s)
symbol = s;
#endif
symbol = symtab_fmt_name_lookup(istate->epc);
 
fault_if_from_uspace(istate, "TLB Invalid Exception on %p.",
cp0_badvaddr_read());
panic("%x: TLB Invalid Exception at %x(%s).", cp0_badvaddr_read(),
panic("%x: TLB Invalid Exception at %x (%s).", cp0_badvaddr_read(),
istate->epc, symbol);
}
 
void tlb_modified_fail(istate_t *istate)
{
char *symbol = "";
char *symbol;
 
#ifdef CONFIG_SYMTAB
char *s = get_symtab_entry(istate->epc);
if (s)
symbol = s;
#endif
symbol = symtab_fmt_name_lookup(istate->epc);
 
fault_if_from_uspace(istate, "TLB Modified Exception on %p.",
cp0_badvaddr_read());
panic("%x: TLB Modified Exception at %x(%s).", cp0_badvaddr_read(),
panic("%x: TLB Modified Exception at %x (%s).", cp0_badvaddr_read(),
istate->epc, symbol);
}