Rev 4132 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4132 | Rev 4137 | ||
|---|---|---|---|
| Line 41... | Line 41... | ||
| 41 | #include <arch/asm.h> |
41 | #include <arch/asm.h> |
| 42 | #include <arch/cpu.h> |
42 | #include <arch/cpu.h> |
| 43 | #include <debug.h> |
43 | #include <debug.h> |
| 44 | #include <func.h> |
44 | #include <func.h> |
| 45 | #include <smp/ipi.h> |
45 | #include <smp/ipi.h> |
| 46 | - | ||
| 47 | #ifdef CONFIG_SYMTAB |
- | |
| 48 | #include <symtab.h> |
46 | #include <symtab.h> |
| 49 | #endif |
- | |
| 50 | 47 | ||
| 51 | typedef struct { |
48 | typedef struct { |
| 52 | uintptr_t address; /**< Breakpoint address */ |
49 | uintptr_t address; /**< Breakpoint address */ |
| 53 | int flags; /**< Flags regarding breakpoint */ |
50 | int flags; /**< Flags regarding breakpoint */ |
| 54 | int counter; /**< How many times the exception occured */ |
51 | int counter; /**< How many times the exception occured */ |
| Line 231... | Line 228... | ||
| 231 | printf("Data watchpoint - new data: %lx\n", |
228 | printf("Data watchpoint - new data: %lx\n", |
| 232 | *((unative_t *) breakpoints[slot].address)); |
229 | *((unative_t *) breakpoints[slot].address)); |
| 233 | } |
230 | } |
| 234 | } |
231 | } |
| 235 | 232 | ||
| 236 | #ifdef CONFIG_SYMTAB |
- | |
| 237 | printf("Reached breakpoint %d:%lx(%s)\n", slot, getip(istate), |
233 | printf("Reached breakpoint %d:%lx (%s)\n", slot, getip(istate), |
| 238 | get_symtab_entry(getip(istate))); |
234 | symtab_fmt_name_lookup(getip(istate))); |
| 239 | #else |
- | |
| 240 | printf("Reached breakpoint %d:%lx\n", slot, getip(istate)); |
- | |
| 241 | #endif |
- | |
| 242 | 235 | ||
| 243 | #ifdef CONFIG_KCONSOLE |
236 | #ifdef CONFIG_KCONSOLE |
| 244 | atomic_set(&haltstate, 1); |
237 | atomic_set(&haltstate, 1); |
| 245 | kconsole("debug", "Debug console ready.\n", false); |
238 | kconsole("debug", "Debug console ready.\n", false); |
| 246 | atomic_set(&haltstate, 0); |
239 | atomic_set(&haltstate, 0); |
| Line 361... | Line 354... | ||
| 361 | printf("-- ----- ------------------ ---------\n"); |
354 | printf("-- ----- ------------------ ---------\n"); |
| 362 | #endif |
355 | #endif |
| 363 | 356 | ||
| 364 | for (i = 0; i < BKPOINTS_MAX; i++) |
357 | for (i = 0; i < BKPOINTS_MAX; i++) |
| 365 | if (breakpoints[i].address) { |
358 | if (breakpoints[i].address) { |
| 366 | #ifdef CONFIG_SYMTAB |
- | |
| 367 | symbol = get_symtab_entry(breakpoints[i].address); |
359 | symbol = symtab_fmt_name_lookup( |
| 368 | #else |
- | |
| 369 | symbol = "n/a"; |
360 | breakpoints[i].address); |
| 370 | #endif |
- | |
| 371 | 361 | ||
| 372 | #ifdef __32_BITS__ |
362 | #ifdef __32_BITS__ |
| 373 | printf("%-2u %-5d %#10zx %s\n", i, |
363 | printf("%-2u %-5d %#10zx %s\n", i, |
| 374 | breakpoints[i].counter, breakpoints[i].address, |
364 | breakpoints[i].counter, breakpoints[i].address, |
| 375 | symbol); |
365 | symbol); |