Lines Matching defs:unwound
502 assert (state->unwound == NULL);
508 Dwfl_Frame *unwound;
509 unwound = malloc (sizeof (*unwound) + sizeof (*unwound->regs) * nregs);
510 if (unlikely (unwound == NULL))
512 state->unwound = unwound;
513 unwound->thread = thread;
514 unwound->unwound = NULL;
515 unwound->signal_frame = false;
516 unwound->initial_frame = false;
517 unwound->pc_state = DWFL_FRAME_STATE_ERROR;
518 memset (unwound->regs_set, 0, sizeof (unwound->regs_set));
519 return unwound;
537 Dwfl_Frame *unwound = new_unwound (state);
538 if (unwound == NULL)
544 unwound->signal_frame = frame->fde->cie->signal_frame;
551 /* The return register is special for setting the unwound->pc_state. */
577 unwound->pc_state = DWFL_FRAME_STATE_PC_UNDEFINED;
616 if (! __libdwfl_frame_reg_set (unwound, regno, regval))
628 if (unwound->pc_state == DWFL_FRAME_STATE_ERROR)
630 int res = INTUSE (dwfl_frame_reg) (unwound,
632 &unwound->pc);
638 if (unwound->pc == 0)
639 unwound->pc_state = DWFL_FRAME_STATE_PC_UNDEFINED;
642 unwound->pc_state = DWFL_FRAME_STATE_PC_SET;
647 unwound->pc += ebl_ra_offset (ebl);
659 unwound->pc_state = DWFL_FRAME_STATE_PC_UNDEFINED;
669 Dwfl_Frame *unwound = state->unwound;
674 assert (unwound->pc_state == DWFL_FRAME_STATE_PC_UNDEFINED);
675 unwound->pc = *regs;
676 unwound->pc_state = DWFL_FRAME_STATE_PC_SET;
680 if (! __libdwfl_frame_reg_set (unwound, firstreg++, *regs++))
710 if (state->unwound)
732 if (state->unwound)
739 if (state->unwound)
743 assert (state->unwound == NULL);
752 state->unwound->pc_state = DWFL_FRAME_STATE_PC_UNDEFINED;
759 assert (state->unwound->unwound == NULL);
760 free (state->unwound);
761 state->unwound = NULL;
765 assert (state->unwound->pc_state == DWFL_FRAME_STATE_PC_SET);
766 state->unwound->signal_frame = signal_frame;