Lines Matching defs:state
1 /* Get Dwarf Frame state for target PID or core file.
40 state_fetch_pc (Dwfl_Frame *state)
42 switch (state->pc_state)
50 Ebl *ebl = state->thread->process->ebl;
64 state->pc = state->regs[ra] + ebl_ra_offset (ebl);
65 state->pc_state = DWFL_FRAME_STATE_PC_SET;
75 free_states (Dwfl_Frame *state)
77 while (state)
79 Dwfl_Frame *next = state->unwound;
80 free(state);
81 state = next;
94 Dwfl_Frame *state = malloc (sizeof (*state) + sizeof (*state->regs) * nregs);
95 if (state == NULL)
97 state->thread = thread;
98 state->signal_frame = false;
99 state->initial_frame = true;
100 state->pc_state = DWFL_FRAME_STATE_ERROR;
101 memset (state->regs_set, 0, sizeof (state->regs_set));
102 thread->unwound = state;
103 state->unwound = NULL;
104 return state;
245 dwfl_frame_thread (Dwfl_Frame *state)
247 return state->thread;
395 int (*callback) (Dwfl_Frame *state, void *arg),
417 Dwfl_Frame *state = thread->unwound;
419 if (! state_fetch_pc (state))
423 free_states (state);
428 int err = callback (state, arg);
433 free_states (state);
436 __libdwfl_frame_unwind (state);
437 Dwfl_Frame *next = state->unwound;
439 free (state);
440 state = next;
442 while (state && state->pc_state == DWFL_FRAME_STATE_PC_SET);
447 if (state == NULL || state->pc_state == DWFL_FRAME_STATE_ERROR)
449 free_states (state);
453 assert (state->pc_state == DWFL_FRAME_STATE_PC_UNDEFINED);
454 free_states (state);