Пример #1
0
/*
 *  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);
}
Пример #2
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);
}
Пример #3
0
void monNotify(void *usr, epicsThreadId tid, int suspended)
{
    testPass("monNotify(tid=%p, suspended=%d)", (void *)tid, suspended);
    epicsThreadResume(tid);
}