Rev 3149 | Rev 4342 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3149 | Rev 3153 | ||
---|---|---|---|
Line 120... | Line 120... | ||
120 | for (i = 0; i < BKPOINTS_MAX; i++) |
120 | for (i = 0; i < BKPOINTS_MAX; i++) |
121 | if (breakpoints[i].address) { |
121 | if (breakpoints[i].address) { |
122 | symbol = get_symtab_entry(breakpoints[i].address); |
122 | symbol = get_symtab_entry(breakpoints[i].address); |
123 | 123 | ||
124 | #ifdef __32_BITS__ |
124 | #ifdef __32_BITS__ |
125 | printf("%-2u %-5d %#10zx %s\n", i, breakpoints[i].counter, |
125 | printf("%-2u %-5d %#10zx %s\n", i, |
126 | breakpoints[i].address, symbol); |
126 | breakpoints[i].counter, breakpoints[i].address, |
- | 127 | symbol); |
|
127 | #endif |
128 | #endif |
128 | 129 | ||
129 | #ifdef __64_BITS__ |
130 | #ifdef __64_BITS__ |
130 | printf("%-2u %-5d %#18zx %s\n", i, breakpoints[i].counter, |
131 | printf("%-2u %-5d %#18zx %s\n", i, |
131 | breakpoints[i].address, symbol); |
132 | breakpoints[i].counter, breakpoints[i].address, |
- | 133 | symbol); |
|
132 | #endif |
134 | #endif |
133 | 135 | ||
134 | } |
136 | } |
135 | return 1; |
137 | return 1; |
136 | } |
138 | } |
Line 254... | Line 256... | ||
254 | /* Handle zero checker */ |
256 | /* Handle zero checker */ |
255 | if (! (breakpoints[slot].flags & BKPOINT_INSTR)) { |
257 | if (! (breakpoints[slot].flags & BKPOINT_INSTR)) { |
256 | if ((breakpoints[slot].flags & BKPOINT_CHECK_ZERO)) { |
258 | if ((breakpoints[slot].flags & BKPOINT_CHECK_ZERO)) { |
257 | if (*((unative_t *) breakpoints[slot].address) != 0) |
259 | if (*((unative_t *) breakpoints[slot].address) != 0) |
258 | return; |
260 | return; |
259 | printf("**** Found ZERO on address %lx (slot %d) ****\n", |
261 | printf("*** Found ZERO on address %lx (slot %d) ***\n", |
260 | breakpoints[slot].address, slot); |
262 | breakpoints[slot].address, slot); |
261 | } else { |
263 | } else { |
262 | printf("Data watchpoint - new data: %lx\n", |
264 | printf("Data watchpoint - new data: %lx\n", |
263 | *((unative_t *) breakpoints[slot].address)); |
265 | *((unative_t *) breakpoints[slot].address)); |
264 | } |
266 | } |
Line 355... | Line 357... | ||
355 | } |
357 | } |
356 | } |
358 | } |
357 | } |
359 | } |
358 | 360 | ||
359 | #ifdef CONFIG_SMP |
361 | #ifdef CONFIG_SMP |
- | 362 | static void |
|
- | 363 | debug_ipi(int n __attribute__((unused)), |
|
360 | static void debug_ipi(int n __attribute__((unused)), istate_t *istate __attribute__((unused))) |
364 | istate_t *istate __attribute__((unused))) |
361 | { |
365 | { |
362 | int i; |
366 | int i; |
363 | 367 | ||
364 | spinlock_lock(&bkpoint_lock); |
368 | spinlock_lock(&bkpoint_lock); |
365 | for (i = 0; i < BKPOINTS_MAX; i++) |
369 | for (i = 0; i < BKPOINTS_MAX; i++) |
Line 392... | Line 396... | ||
392 | cmd_initialize(&addwatchp_info); |
396 | cmd_initialize(&addwatchp_info); |
393 | if (!cmd_register(&addwatchp_info)) |
397 | if (!cmd_register(&addwatchp_info)) |
394 | panic("could not register command %s\n", addwatchp_info.name); |
398 | panic("could not register command %s\n", addwatchp_info.name); |
395 | #endif |
399 | #endif |
396 | 400 | ||
397 | exc_register(VECTOR_DEBUG, "debugger", |
401 | exc_register(VECTOR_DEBUG, "debugger", debug_exception); |
398 | debug_exception); |
- | |
399 | #ifdef CONFIG_SMP |
402 | #ifdef CONFIG_SMP |
400 | exc_register(VECTOR_DEBUG_IPI, "debugger_smp", |
403 | exc_register(VECTOR_DEBUG_IPI, "debugger_smp", debug_ipi); |
401 | debug_ipi); |
- | |
402 | #endif |
404 | #endif |
403 | } |
405 | } |
404 | 406 | ||
405 | /** @} |
407 | /** @} |
406 | */ |
408 | */ |