| 415 | } |
| 416 | |
| 417 | void |
| 418 | db_trace_self(void) |
| 419 | { |
| 420 | register_t pc, ra, sp; |
| 421 | |
| 422 | sp = (register_t)(intptr_t)__builtin_frame_address(0); |
| 423 | ra = (register_t)(intptr_t)__builtin_return_address(0); |
| 424 | |
| 425 | __asm __volatile( |
| 426 | "jal 99f\n" |
| 427 | "nop\n" |
| 428 | "99:\n" |
| 429 | "move %0, $31\n" /* get ra */ |
| 430 | "move $31, %1\n" /* restore ra */ |
| 431 | : "=r" (pc) |
| 432 | : "r" (ra)); |
| 433 | stacktrace_subr(pc, sp, ra); |
| 434 | return; |
| 435 | } |
| 436 | |
| 437 | int |
| 438 | db_trace_thread(struct thread *thr, int count) |
nothing calls this directly
no test coverage detected