/* * functions to perform markers and tree vew operation when breakpoint * is finally updated/added/removed */ static void on_add(breakpoint *bp) { /* add to breakpoints tab */ bptree_add_breakpoint(bp); /* add marker */ markers_add_breakpoint(bp); }
static void on_set_condition(breakpoint* bp) { /* set condition in breaks tree */ bptree_set_condition(bp); markers_remove_breakpoint(bp); markers_add_breakpoint(bp); }
static void on_switch(breakpoint *bp) { /* remove old and set new marker */ markers_remove_breakpoint(bp); markers_add_breakpoint(bp); /* set checkbox in breaks tree */ bptree_set_enabled(bp); }
/* * Set breakpoint and stack markers for a file */ static void set_markers_for_file(const gchar* file) { GList *breaks; if ( (breaks = breaks_get_for_document(file)) ) { GList *iter = breaks; while (iter) { breakpoint *bp = (breakpoint*)iter->data; markers_add_breakpoint(bp); iter = iter->next; } g_list_free(breaks); } /* set frames markers if exists */ if (DBS_STOPPED == debug_get_state()) { int active_frame_index = debug_get_active_frame(); GList *iter = debug_get_stack(); int frame_index = 0; for (; iter; iter = iter->next, frame_index++) { if (iter) { frame *f = (frame*)iter->data; if (f->have_source && !strcmp(f->file, file)) { if (active_frame_index == frame_index) { markers_add_current_instruction(f->file, f->line); } else { markers_add_frame(f->file, f->line); } } } } } }
static void on_set_enabled_list(GList *breaks, gboolean enabled) { GList *iter = breaks; while (iter) { breakpoint *bp = (breakpoint*)iter->data; if (bp->enabled ^ enabled) { bp->enabled = enabled; /* remove old and set new marker */ markers_remove_breakpoint(bp); markers_add_breakpoint(bp); /* set checkbox in breaks tree */ bptree_set_enabled(bp); } iter = iter->next; } }
static void on_set_hits_count(breakpoint *bp) { bptree_set_hitscount(bp); markers_remove_breakpoint(bp); markers_add_breakpoint(bp); }