Rev 958 | Rev 1702 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 958 | Rev 1196 | ||
|---|---|---|---|
| Line 240... | Line 240... | ||
| 240 | 240 | ||
| 241 | printf("Breakpoint table.\n"); |
241 | printf("Breakpoint table.\n"); |
| 242 | for (i=0; i < BKPOINTS_MAX; i++) |
242 | for (i=0; i < BKPOINTS_MAX; i++) |
| 243 | if (breakpoints[i].address) { |
243 | if (breakpoints[i].address) { |
| 244 | symbol = get_symtab_entry(breakpoints[i].address); |
244 | symbol = get_symtab_entry(breakpoints[i].address); |
| 245 | printf("%d. 0x%p in %s\n",i, |
245 | printf("%d. %p in %s\n",i, |
| 246 | breakpoints[i].address, symbol); |
246 | breakpoints[i].address, symbol); |
| 247 | printf(" Count(%d) ", breakpoints[i].counter); |
247 | printf(" Count(%d) ", breakpoints[i].counter); |
| 248 | if (breakpoints[i].flags & BKPOINT_INPROG) |
248 | if (breakpoints[i].flags & BKPOINT_INPROG) |
| 249 | printf("INPROG "); |
249 | printf("INPROG "); |
| 250 | if (breakpoints[i].flags & BKPOINT_ONESHOT) |
250 | if (breakpoints[i].flags & BKPOINT_ONESHOT) |
| Line 326... | Line 326... | ||
| 326 | } |
326 | } |
| 327 | if (cur->flags & BKPOINT_INPROG) |
327 | if (cur->flags & BKPOINT_INPROG) |
| 328 | printf("Warning: breakpoint recursion\n"); |
328 | printf("Warning: breakpoint recursion\n"); |
| 329 | 329 | ||
| 330 | if (!(cur->flags & BKPOINT_FUNCCALL)) |
330 | if (!(cur->flags & BKPOINT_FUNCCALL)) |
| 331 | printf("***Breakpoint %d: 0x%p in %s.\n", i, |
331 | printf("***Breakpoint %d: %p in %s.\n", i, |
| 332 | fireaddr, get_symtab_entry(istate->epc)); |
332 | fireaddr, get_symtab_entry(istate->epc)); |
| 333 | 333 | ||
| 334 | /* Return first instruction back */ |
334 | /* Return first instruction back */ |
| 335 | ((__u32 *)cur->address)[0] = cur->instruction; |
335 | ((__u32 *)cur->address)[0] = cur->instruction; |
| 336 | 336 | ||
| Line 339... | Line 339... | ||
| 339 | ((__u32 *)cur->address)[1] = 0x0d; |
339 | ((__u32 *)cur->address)[1] = 0x0d; |
| 340 | cur->flags |= BKPOINT_REINST; |
340 | cur->flags |= BKPOINT_REINST; |
| 341 | } |
341 | } |
| 342 | cur->flags |= BKPOINT_INPROG; |
342 | cur->flags |= BKPOINT_INPROG; |
| 343 | } else { |
343 | } else { |
| 344 | printf("***Breakpoint 0x%p in %s.\n", fireaddr, |
344 | printf("***Breakpoint %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 | istate->epc += 4; |
347 | istate->epc += 4; |
| 348 | } |
348 | } |
| 349 | if (cur) |
349 | if (cur) |