gboolean view_stack_update(void) { if (views[VIEW_STACK].dirty) { DebugState state = thread_state >= THREAD_STOPPED ? DS_DEBUG : DS_READY; view_update_unconditional(VIEW_STACK, state); return state == DS_DEBUG; } return FALSE; }
gboolean view_select_frame(void) { if (g_strcmp0(frame_id, "0") && views[VIEW_STACK].dirty) { DebugState state = thread_state >= THREAD_STOPPED ? DS_DEBUG : DS_READY; view_update_unconditional(VIEW_STACK, state); return state == DS_DEBUG; } return FALSE; }
void views_update(DebugState state) { if (option_update_all_views) { ViewIndex i; if (thread_state == THREAD_QUERY_FRAME) { if (!views[VIEW_THREADS].dirty) thread_query_frame('4'); thread_state = THREAD_STOPPED; } for (i = 0; i < VIEW_COUNT; i++) { if (views[i].dirty) { view_update_unconditional(i, state); if (i == VIEW_STACK && thread_state >= THREAD_STOPPED) i = VIEW_WATCHES; } } } else { if (thread_state == THREAD_QUERY_FRAME) { if (view_current != VIEW_THREADS || !views[VIEW_THREADS].dirty) thread_query_frame('4'); thread_state = THREAD_STOPPED; } view_update(view_current, state); view_update(VIEW_TOOLTIP, state); if (inspects_current()) view_update(VIEW_INSPECT, state); } }
static void view_update(ViewIndex index, DebugState state) { if (views[index].dirty) view_update_unconditional(index, state); }