亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cli-script.c

?? 這個是LINUX下的GDB調(diào)度工具的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
   loop condition is nonzero.  */voidwhile_command (char *arg, int from_tty){  struct command_line *command = NULL;  control_level = 1;  command = get_command_line (while_control, arg);  if (command == NULL)    return;  execute_control_command (command);  free_command_lines (&command);}/* "if" command support.  Execute either the true or false arm depending   on the value of the if conditional.  */voidif_command (char *arg, int from_tty){  struct command_line *command = NULL;  control_level = 1;  command = get_command_line (if_control, arg);  if (command == NULL)    return;  execute_control_command (command);  free_command_lines (&command);}/* Cleanup */static voidarg_cleanup (void *ignore){  struct user_args *oargs = user_args;  if (!user_args)    internal_error (__FILE__, __LINE__,		    "arg_cleanup called with no user args.\n");  user_args = user_args->next;  xfree (oargs);}/* Bind the incomming arguments for a user defined command to   $arg0, $arg1 ... $argMAXUSERARGS.  */static struct cleanup *setup_user_args (char *p){  struct user_args *args;  struct cleanup *old_chain;  unsigned int arg_count = 0;  args = (struct user_args *) xmalloc (sizeof (struct user_args));  memset (args, 0, sizeof (struct user_args));  args->next = user_args;  user_args = args;  old_chain = make_cleanup (arg_cleanup, 0/*ignored*/);  if (p == NULL)    return old_chain;  while (*p)    {      char *start_arg;      int squote = 0;      int dquote = 0;      int bsquote = 0;      if (arg_count >= MAXUSERARGS)	{	  error ("user defined function may only have %d arguments.\n",		 MAXUSERARGS);	  return old_chain;	}      /* Strip whitespace.  */      while (*p == ' ' || *p == '\t')	p++;      /* P now points to an argument.  */      start_arg = p;      user_args->a[arg_count].arg = p;      /* Get to the end of this argument.  */      while (*p)	{	  if (((*p == ' ' || *p == '\t')) && !squote && !dquote && !bsquote)	    break;	  else	    {	      if (bsquote)		bsquote = 0;	      else if (*p == '\\')		bsquote = 1;	      else if (squote)		{		  if (*p == '\'')		    squote = 0;		}	      else if (dquote)		{		  if (*p == '"')		    dquote = 0;		}	      else		{		  if (*p == '\'')		    squote = 1;		  else if (*p == '"')		    dquote = 1;		}	      p++;	    }	}      user_args->a[arg_count].len = p - start_arg;      arg_count++;      user_args->count++;    }  return old_chain;}/* Given character string P, return a point to the first argument ($arg),   or NULL if P contains no arguments.  */static char *locate_arg (char *p){  while ((p = strchr (p, '$')))    {      if (strncmp (p, "$arg", 4) == 0 && isdigit (p[4]))	return p;      p++;    }  return NULL;}/* Insert the user defined arguments stored in user_arg into the $arg   arguments found in line, with the updated copy being placed into nline.  */static char *insert_args (char *line){  char *p, *save_line, *new_line;  unsigned len, i;  /* First we need to know how much memory to allocate for the new line.  */  save_line = line;  len = 0;  while ((p = locate_arg (line)))    {      len += p - line;      i = p[4] - '0';      if (i >= user_args->count)	{	  error ("Missing argument %d in user function.\n", i);	  return NULL;	}      len += user_args->a[i].len;      line = p + 5;    }  /* Don't forget the tail.  */  len += strlen (line);  /* Allocate space for the new line and fill it in.  */  new_line = (char *) xmalloc (len + 1);  if (new_line == NULL)    return NULL;  /* Restore pointer to beginning of old line.  */  line = save_line;  /* Save pointer to beginning of new line.  */  save_line = new_line;  while ((p = locate_arg (line)))    {      int i, len;      memcpy (new_line, line, p - line);      new_line += p - line;      i = p[4] - '0';      len = user_args->a[i].len;      if (len)	{	  memcpy (new_line, user_args->a[i].arg, len);	  new_line += len;	}      line = p + 5;    }  /* Don't forget the tail.  */  strcpy (new_line, line);  /* Return a pointer to the beginning of the new line.  */  return save_line;}/* Expand the body_list of COMMAND so that it can hold NEW_LENGTH   code bodies.  This is typically used when we encounter an "else"   clause for an "if" command.  */static voidrealloc_body_list (struct command_line *command, int new_length){  int n;  struct command_line **body_list;  n = command->body_count;  /* Nothing to do?  */  if (new_length <= n)    return;  body_list = (struct command_line **)    xmalloc (sizeof (struct command_line *) * new_length);  memcpy (body_list, command->body_list, sizeof (struct command_line *) * n);  xfree (command->body_list);  command->body_list = body_list;  command->body_count = new_length;}/* Read one line from the input stream.  If the command is an "else" or   "end", return such an indication to the caller.  */static enum misc_command_typeread_next_line (struct command_line **command){  char *p, *p1, *prompt_ptr, control_prompt[256];  int i = 0;  if (control_level >= 254)    error ("Control nesting too deep!\n");  /* Set a prompt based on the nesting of the control commands.  */  if (instream == stdin || (instream == 0 && deprecated_readline_hook != NULL))    {      for (i = 0; i < control_level; i++)	control_prompt[i] = ' ';      control_prompt[i] = '>';      control_prompt[i + 1] = '\0';      prompt_ptr = (char *) &control_prompt[0];    }  else    prompt_ptr = NULL;  p = command_line_input (prompt_ptr, instream == stdin, "commands");  /* Not sure what to do here.  */  if (p == NULL)    return end_command;  /* Strip leading and trailing whitespace.  */  while (*p == ' ' || *p == '\t')    p++;  p1 = p + strlen (p);  while (p1 != p && (p1[-1] == ' ' || p1[-1] == '\t'))    p1--;  /* Blanks and comments don't really do anything, but we need to     distinguish them from else, end and other commands which can be     executed.  */  if (p1 == p || p[0] == '#')    return nop_command;  /* Is this the end of a simple, while, or if control structure?  */  if (p1 - p == 3 && !strncmp (p, "end", 3))    return end_command;  /* Is the else clause of an if control structure?  */  if (p1 - p == 4 && !strncmp (p, "else", 4))    return else_command;  /* Check for while, if, break, continue, etc and build a new command     line structure for them.  */  if (p1 - p > 5 && !strncmp (p, "while", 5))    {      char *first_arg;      first_arg = p + 5;      while (first_arg < p1 && isspace (*first_arg))        first_arg++;      *command = build_command_line (while_control, first_arg);    }  else if (p1 - p > 2 && !strncmp (p, "if", 2))    {      char *first_arg;      first_arg = p + 2;      while (first_arg < p1 && isspace (*first_arg))        first_arg++;      *command = build_command_line (if_control, first_arg);    }  else if (p1 - p == 10 && !strncmp (p, "loop_break", 10))    {      *command = (struct command_line *)	xmalloc (sizeof (struct command_line));      (*command)->next = NULL;      (*command)->line = NULL;      (*command)->control_type = break_control;      (*command)->body_count = 0;      (*command)->body_list = NULL;    }  else if (p1 - p == 13 && !strncmp (p, "loop_continue", 13))    {      *command = (struct command_line *)	xmalloc (sizeof (struct command_line));      (*command)->next = NULL;      (*command)->line = NULL;      (*command)->control_type = continue_control;      (*command)->body_count = 0;      (*command)->body_list = NULL;    }  else    {      /* A normal command.  */      *command = (struct command_line *)	xmalloc (sizeof (struct command_line));      (*command)->next = NULL;      (*command)->line = savestring (p, p1 - p);      (*command)->control_type = simple_control;      (*command)->body_count = 0;      (*command)->body_list = NULL;    }  /* Nothing special.  */  return ok_command;}/* Recursively read in the control structures and create a command_line    structure from them.   The parent_control parameter is the control structure in which the   following commands are nested.  */static enum command_control_typerecurse_read_control_structure (struct command_line *current_cmd){  int current_body, i;  enum misc_command_type val;  enum command_control_type ret;  struct command_line **body_ptr, *child_tail, *next;  child_tail = NULL;  current_body = 1;  /* Sanity checks.  */  if (current_cmd->control_type == simple_control)    {      error ("Recursed on a simple control type\n");      return invalid_control;    }  if (current_body > current_cmd->body_count)    {      error ("Allocated body is smaller than this command type needs\n");      return invalid_control;    }  /* Read lines from the input stream and build control structures.  */  while (1)    {      dont_repeat ();      next = NULL;      val = read_next_line (&next);      /* Just skip blanks and comments.  */      if (val == nop_command)	continue;      if (val == end_command)	{	  if (current_cmd->control_type == while_control	      || current_cmd->control_type == if_control)	    {	      /* Success reading an entire control structure.  */	      ret = simple_control;	      break;	    }	  else	    {	      ret = invalid_control;	      break;	    }	}      /* Not the end of a control structure.  */      if (val == else_command)	{	  if (current_cmd->control_type == if_control	      && current_body == 1)	    {	      realloc_body_list (current_cmd, 2);	      current_body = 2;	      child_tail = NULL;	      continue;	    }	  else	    {	      ret = invalid_control;	      break;	    }	}      if (child_tail)	{	  child_tail->next = next;	}      else	{	  body_ptr = current_cmd->body_list;	  for (i = 1; i < current_body; i++)	    body_ptr++;	  *body_ptr = next;	}      child_tail = next;      /* If the latest line is another control structure, then recurse         on it.  */      if (next->control_type == while_control	  || next->control_type == if_control)	{	  control_level++;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人你懂的| 欧美三级日韩在线| 樱花草国产18久久久久| 国产精品国产三级国产普通话三级| 精品理论电影在线观看| 久久精品男人的天堂| 国产精品九色蝌蚪自拍| 亚洲综合网站在线观看| 美女爽到高潮91| 成人午夜在线播放| 欧美久久久久久久久久| 精品乱人伦小说| 亚洲婷婷综合色高清在线| 一区二区在线观看不卡| 欧美成人一区二区三区 | 91视频在线看| 日韩精品一区在线| 欧洲另类一二三四区| 日本韩国一区二区| 日韩视频在线观看一区二区| 国产精品丝袜91| 毛片av一区二区| 欧美综合色免费| 国产精品久久久久久久久晋中 | 韩国av一区二区三区| 色综合久久久久综合体| 国产亚洲人成网站| 丝袜亚洲另类欧美综合| 91免费在线看| 国产精品久久久久久久裸模| 久久精品国产精品亚洲红杏| 在线一区二区观看| 国产欧美1区2区3区| 另类综合日韩欧美亚洲| 欧美日韩国产首页| 一区二区三区小说| 成人激情小说网站| 久久久激情视频| 国产资源在线一区| 精品乱码亚洲一区二区不卡| 五月婷婷久久综合| 欧美在线观看禁18| 亚洲午夜电影在线观看| 色婷婷综合久久久| 亚洲影院免费观看| 欧美日韩一区精品| 五月激情综合色| 91精品国产综合久久精品麻豆| 捆绑调教美女网站视频一区| 日本不卡视频在线| 色综合中文综合网| 久久99精品国产麻豆婷婷洗澡| 在线91免费看| 久草这里只有精品视频| 国产亚洲欧美激情| 99热这里都是精品| 亚洲男同性恋视频| 欧美丝袜第三区| 三级欧美韩日大片在线看| 欧美一卡二卡在线| 国产在线观看一区二区 | 亚洲成av人**亚洲成av**| 欧美日韩精品欧美日韩精品| 五月综合激情网| 国产拍欧美日韩视频二区| av在线一区二区三区| 午夜亚洲福利老司机| 久久亚洲精华国产精华液| 国产成人免费高清| 亚洲品质自拍视频| 日韩一区二区视频| 99久久er热在这里只有精品15 | 91精品国产日韩91久久久久久| 蜜臀久久99精品久久久久宅男 | 91日韩精品一区| 另类小说视频一区二区| 国产精品传媒入口麻豆| 91精品国产一区二区三区蜜臀| 极品美女销魂一区二区三区 | 91免费国产在线观看| 免费精品视频最新在线| 国产精品灌醉下药二区| 日韩欧美中文字幕公布| 色综合网站在线| 丰满少妇久久久久久久| 日本美女一区二区| 日本不卡123| 亚洲欧美成aⅴ人在线观看| 日韩免费视频线观看| 欧美午夜精品免费| 色狠狠色噜噜噜综合网| 成人污污视频在线观看| 极品美女销魂一区二区三区免费| 午夜亚洲福利老司机| 亚洲一区视频在线| 亚洲精品中文在线影院| 亚洲欧美一区二区视频| 国产色综合一区| 国产精品嫩草影院av蜜臀| 337p日本欧洲亚洲大胆色噜噜| 日韩女优电影在线观看| 欧美一区二区视频在线观看| 在线观看一区二区视频| 欧美三级电影一区| 在线不卡的av| 日韩欧美亚洲另类制服综合在线| 26uuuu精品一区二区| 日韩视频永久免费| 欧美va亚洲va香蕉在线| 精品福利二区三区| 国产片一区二区| 国产精品成人免费精品自在线观看 | 亚洲综合在线五月| 美女视频黄频大全不卡视频在线播放 | 日韩欧美在线影院| 国产亚洲污的网站| 久久久久久免费网| 欧美一区二区三区免费在线看| 在线综合亚洲欧美在线视频| 欧美变态口味重另类| 国产色产综合色产在线视频| 亚洲人123区| 免费在线看一区| 国产另类ts人妖一区二区| 91网站黄www| 欧美电视剧在线观看完整版| 国产精品久久久久久妇女6080| 亚洲午夜精品久久久久久久久| 国模娜娜一区二区三区| 色婷婷精品久久二区二区蜜臀av| 337p亚洲精品色噜噜狠狠| 国产欧美精品一区| 秋霞国产午夜精品免费视频| 大桥未久av一区二区三区中文| 欧美日韩国产123区| 亚洲欧洲日韩女同| 国产一区激情在线| 色综合色综合色综合色综合色综合| 日韩欧美你懂的| 亚洲成人av电影| 在线精品视频一区二区三四| 久久久久高清精品| 麻豆精品精品国产自在97香蕉| 欧洲中文字幕精品| 国产精品二三区| 成年人国产精品| 国产性色一区二区| 国产在线视频精品一区| 精品精品欲导航| 日韩福利视频网| 555夜色666亚洲国产免| 亚洲精品国产成人久久av盗摄| 波多野洁衣一区| 国产精品久久久久久一区二区三区 | 国产做a爰片久久毛片| 日韩精品中午字幕| 麻豆91在线看| 国产亚洲精品bt天堂精选| 国产精品一区二区x88av| 久久色中文字幕| 老色鬼精品视频在线观看播放| 成人动漫一区二区| 欧美国产禁国产网站cc| 成人18精品视频| 依依成人综合视频| 555www色欧美视频| 奇米影视在线99精品| 26uuu久久综合| 成人av综合一区| 五月婷婷综合在线| 久久嫩草精品久久久精品| 国产精品一区三区| 亚洲免费观看高清完整版在线| 日本韩国一区二区三区| 蜜臀av一区二区三区| 国产亚洲短视频| 在线观看一区二区精品视频| 日本成人在线视频网站| 国产亚洲综合在线| 欧美自拍丝袜亚洲| 国产一区二区三区四区在线观看| 中文字幕亚洲电影| 欧美一区二区美女| 91免费视频网| 国产精品一区一区| 五月婷婷激情综合| 国产精品久久久久一区二区三区共 | 国产亚洲成av人在线观看导航| 在线免费观看成人短视频| 国产精品亚洲а∨天堂免在线| 亚洲sss视频在线视频| 日本一区二区三区久久久久久久久不 | 高清成人在线观看| 日韩精品亚洲一区| 亚洲老妇xxxxxx| 国产精品久久久久久亚洲伦| www日韩大片| 日韩亚洲欧美一区| 制服丝袜亚洲播放| 欧美色精品在线视频|