Rev 673 | Rev 851 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 673 | Rev 850 | ||
---|---|---|---|
Line 344... | Line 344... | ||
344 | printf("***Breakpoint 0x%p in %s.\n", fireaddr, |
344 | printf("***Breakpoint 0x%p in %s.\n", fireaddr, |
345 | get_symtab_entry(fireaddr)); |
345 | get_symtab_entry(fireaddr)); |
346 | /* Move on to next instruction */ |
346 | /* Move on to next instruction */ |
347 | pstate->epc += 4; |
347 | pstate->epc += 4; |
348 | } |
348 | } |
349 | 349 | if (cur) |
|
350 | cur->counter++; |
350 | cur->counter++; |
351 | if (cur && (cur->flags & BKPOINT_FUNCCALL)) { |
351 | if (cur && (cur->flags & BKPOINT_FUNCCALL)) { |
- | 352 | printf("3.5\n"); |
|
352 | /* Allow zero bkfunc, just for counting */ |
353 | /* Allow zero bkfunc, just for counting */ |
353 | if (cur->bkfunc) |
354 | if (cur->bkfunc) |
354 | cur->bkfunc(cur, pstate); |
355 | cur->bkfunc(cur, pstate); |
355 | } else { |
356 | } else { |
356 | printf("***Type 'exit' to exit kconsole.\n"); |
357 | printf("***Type 'exit' to exit kconsole.\n"); |
Line 365... | Line 366... | ||
365 | kconsole("debug"); |
366 | kconsole("debug"); |
366 | 367 | ||
367 | spinlock_lock(&bkpoint_lock); |
368 | spinlock_lock(&bkpoint_lock); |
368 | atomic_set(&haltstate,0); |
369 | atomic_set(&haltstate,0); |
369 | } |
370 | } |
370 | - | ||
371 | if (cur && cur->address == fireaddr && (cur->flags & BKPOINT_INPROG)) { |
371 | if (cur && cur->address == fireaddr && (cur->flags & BKPOINT_INPROG)) { |
372 | /* Remove one-shot breakpoint */ |
372 | /* Remove one-shot breakpoint */ |
373 | if ((cur->flags & BKPOINT_ONESHOT)) |
373 | if ((cur->flags & BKPOINT_ONESHOT)) |
374 | cur->address = NULL; |
374 | cur->address = NULL; |
375 | /* Remove in-progress flag */ |
375 | /* Remove in-progress flag */ |