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 */ |