/* * Continue processing in a lock set * 1. Find top node in the lockset stack. * 2. Turn off stepping mode. * 2. Resume dbBkptCont. */ long epicsShareAPI dbc(const char *record_name) { struct LS_LIST *pnode; struct dbCommon *precord = NULL; long status = 0; epicsMutexMustLock(bkpt_stack_sem); status = FIND_CONT_NODE(record_name, &pnode, &precord); if (status) { epicsMutexUnlock(bkpt_stack_sem); return(status); } if (record_name == NULL && last_lset != pnode->l_num) printf(" BKPT> Continuing: %s\n", pnode->precord->name); last_lset = pnode->l_num; /* * Turn off stepping mode */ pnode->step = 0; /* * Resume dbBkptCont() until dbProcess() is executed * for a record with a breakpoint. This occurs * because stepping mode has been switched off. */ epicsThreadResume(pnode->taskid); epicsMutexUnlock(bkpt_stack_sem); return(0); }
/* * Step through record processing * 1. Find top node in lockset stack. * 2. Resume dbBkptCont. */ long epicsShareAPI dbs(const char *record_name) { struct LS_LIST *pnode; struct dbCommon *precord = NULL; long status = 0; epicsMutexMustLock(bkpt_stack_sem); status = FIND_CONT_NODE(record_name, &pnode, &precord); if (status) { epicsMutexUnlock(bkpt_stack_sem); return(status); } if (last_lset != pnode->l_num && record_name == NULL) printf(" BKPT> Stepping: %s\n", pnode->precord->name); last_lset = pnode->l_num; epicsThreadResume(pnode->taskid); epicsMutexUnlock(bkpt_stack_sem); return(0); }
void monNotify(void *usr, epicsThreadId tid, int suspended) { testPass("monNotify(tid=%p, suspended=%d)", (void *)tid, suspended); epicsThreadResume(tid); }