⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sim-trace.c

📁 这个是LINUX下的GDB调度工具的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
  save_data (sd, data, trace_fmt_word, sizeof (d2), &d2);  save_data (sd, data, trace_fmt_word, sizeof (d3), &d3);}voidtrace_input_bool1 (SIM_DESC sd,		   sim_cpu *cpu,		   int trace_idx,		   int d0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  TRACE_IDX (data) = trace_idx;  save_data (sd, data, trace_fmt_bool, sizeof (d0), &d0);}voidtrace_input_addr1 (SIM_DESC sd,		   sim_cpu *cpu,		   int trace_idx,		   address_word d0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  TRACE_IDX (data) = trace_idx;  save_data (sd, data, trace_fmt_addr, sizeof (d0), &d0);}voidtrace_input_fp1 (SIM_DESC sd,		 sim_cpu *cpu,		 int trace_idx,		 fp_word f0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  TRACE_IDX (data) = trace_idx;  save_data (sd, data, trace_fmt_fp, sizeof (fp_word), &f0);}voidtrace_input_fp2 (SIM_DESC sd,		 sim_cpu *cpu,		 int trace_idx,		 fp_word f0,		 fp_word f1){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  TRACE_IDX (data) = trace_idx;  save_data (sd, data, trace_fmt_fp, sizeof (fp_word), &f0);  save_data (sd, data, trace_fmt_fp, sizeof (fp_word), &f1);}voidtrace_input_fp3 (SIM_DESC sd,		 sim_cpu *cpu,		 int trace_idx,		 fp_word f0,		 fp_word f1,		 fp_word f2){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  TRACE_IDX (data) = trace_idx;  save_data (sd, data, trace_fmt_fp, sizeof (fp_word), &f0);  save_data (sd, data, trace_fmt_fp, sizeof (fp_word), &f1);  save_data (sd, data, trace_fmt_fp, sizeof (fp_word), &f2);}voidtrace_input_fpu1 (SIM_DESC sd,		  sim_cpu *cpu,		  int trace_idx,		  sim_fpu *f0){  double d;  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  TRACE_IDX (data) = trace_idx;  d = sim_fpu_2d (f0);  save_data (sd, data, trace_fmt_fp, sizeof (double), &d);}voidtrace_input_fpu2 (SIM_DESC sd,		  sim_cpu *cpu,		  int trace_idx,		  sim_fpu *f0,		  sim_fpu *f1){  double d;  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  TRACE_IDX (data) = trace_idx;  d = sim_fpu_2d (f0);  save_data (sd, data, trace_fmt_fp, sizeof (double), &d);  d = sim_fpu_2d (f1);  save_data (sd, data, trace_fmt_fp, sizeof (double), &d);}voidtrace_input_fpu3 (SIM_DESC sd,		  sim_cpu *cpu,		  int trace_idx,		  sim_fpu *f0,		  sim_fpu *f1,		  sim_fpu *f2){  double d;  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  TRACE_IDX (data) = trace_idx;  d = sim_fpu_2d (f0);  save_data (sd, data, trace_fmt_fp, sizeof (double), &d);  d = sim_fpu_2d (f1);  save_data (sd, data, trace_fmt_fp, sizeof (double), &d);  d = sim_fpu_2d (f2);  save_data (sd, data, trace_fmt_fp, sizeof (double), &d);}voidtrace_result_word1 (SIM_DESC sd,		    sim_cpu *cpu,		    int trace_idx,		    unsigned_word r0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_word, sizeof (unsigned_word), &r0);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result0 (SIM_DESC sd,	       sim_cpu *cpu,	       int trace_idx){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_word2 (SIM_DESC sd,		    sim_cpu *cpu,		    int trace_idx,		    unsigned_word r0,		    unsigned_word r1){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_word, sizeof (r0), &r0);  save_data (sd, data, trace_fmt_word, sizeof (r1), &r1);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_word4 (SIM_DESC sd,		    sim_cpu *cpu,		    int trace_idx,		    unsigned_word r0,		    unsigned_word r1,		    unsigned_word r2,		    unsigned_word r3){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_word, sizeof (r0), &r0);  save_data (sd, data, trace_fmt_word, sizeof (r1), &r1);  save_data (sd, data, trace_fmt_word, sizeof (r2), &r2);  save_data (sd, data, trace_fmt_word, sizeof (r3), &r3);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_bool1 (SIM_DESC sd,		    sim_cpu *cpu,		    int trace_idx,		    int r0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_bool, sizeof (r0), &r0);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_addr1 (SIM_DESC sd,		    sim_cpu *cpu,		    int trace_idx,		    address_word r0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_addr, sizeof (r0), &r0);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_fp1 (SIM_DESC sd,		  sim_cpu *cpu,		  int trace_idx,		  fp_word f0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_fp, sizeof (fp_word), &f0);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_fp2 (SIM_DESC sd,		  sim_cpu *cpu,		  int trace_idx,		  fp_word f0,		  fp_word f1){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_fp, sizeof (f0), &f0);  save_data (sd, data, trace_fmt_fp, sizeof (f1), &f1);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_fpu1 (SIM_DESC sd,		   sim_cpu *cpu,		   int trace_idx,		   sim_fpu *f0){  double d;  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  d = sim_fpu_2d (f0);  save_data (sd, data, trace_fmt_fp, sizeof (double), &d);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_string1 (SIM_DESC sd,		      sim_cpu *cpu,		      int trace_idx,		      char *s0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_string, strlen (s0) + 1, s0);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_result_word1_string1 (SIM_DESC sd,			    sim_cpu *cpu,			    int trace_idx,			    unsigned_word r0,			    char *s0){  TRACE_DATA *data = CPU_TRACE_DATA (cpu);  int last_input;  /* Append any results to the end of the inputs */  last_input = TRACE_INPUT_IDX (data);  save_data (sd, data, trace_fmt_word, sizeof (unsigned_word), &r0);  save_data (sd, data, trace_fmt_string, strlen (s0) + 1, s0);  trace_results (sd, cpu, trace_idx, last_input);}	      voidtrace_vprintf (SIM_DESC sd, sim_cpu *cpu, const char *fmt, va_list ap){  if (cpu != NULL)    {      if (TRACE_FILE (CPU_TRACE_DATA (cpu)) != NULL)	vfprintf (TRACE_FILE (CPU_TRACE_DATA (cpu)), fmt, ap);      else	sim_io_evprintf (sd, fmt, ap);    }  else    {      if (TRACE_FILE (STATE_TRACE_DATA (sd)) != NULL)	vfprintf (TRACE_FILE (STATE_TRACE_DATA (sd)), fmt, ap);      else	sim_io_evprintf (sd, fmt, ap);    }}/* The function trace_one_insn has been replaced by the function pair   trace_prefix() + trace_generic().  It is still used. */voidtrace_one_insn (SIM_DESC sd, sim_cpu *cpu, address_word pc,		int line_p, const char *filename, int linenum,		const char *phase_wo_colon, const char *fmt,		...){  va_list ap;  char phase[SIZE_PHASE+2];  strncpy (phase, phase_wo_colon, SIZE_PHASE);  strcat (phase, ":");  if (!line_p)    {      trace_printf (sd, cpu, "%-*s %s:%-*d 0x%.*lx ",		    SIZE_PHASE+1, phase,		    filename,		    SIZE_LINE_NUMBER, linenum,		    SIZE_PC, (long)pc);      va_start (ap, fmt);      trace_vprintf (sd, cpu, fmt, ap);      va_end (ap);      trace_printf (sd, cpu, "\n");    }  else    {      char buf[256];      buf[0] = 0;      if (STATE_TEXT_SECTION (CPU_STATE (cpu))	  && pc >= STATE_TEXT_START (CPU_STATE (cpu))	  && pc < STATE_TEXT_END (CPU_STATE (cpu)))	{	  const char *pc_filename = (const char *)0;	  const char *pc_function = (const char *)0;	  unsigned int pc_linenum = 0;	  if (bfd_find_nearest_line (STATE_PROG_BFD (CPU_STATE (cpu)),				     STATE_TEXT_SECTION (CPU_STATE (cpu)),				     (struct bfd_symbol **) 0,				     pc - STATE_TEXT_START (CPU_STATE (cpu)),				     &pc_filename, &pc_function, &pc_linenum))	    {	      char *p = buf;	      if (pc_linenum)		{		  sprintf (p, "#%-*d ", SIZE_LINE_NUMBER, pc_linenum);		  p += strlen (p);		}	      else		{		  sprintf (p, "%-*s ", SIZE_LINE_NUMBER+1, "---");		  p += SIZE_LINE_NUMBER+2;		}	      if (pc_function)		{		  sprintf (p, "%s ", pc_function);		  p += strlen (p);		}	      else if (pc_filename)		{		  char *q = (char *) strrchr (pc_filename, '/');		  sprintf (p, "%s ", (q) ? q+1 : pc_filename);		  p += strlen (p);		}	      if (*p == ' ')		*p = '\0';	    }	}      trace_printf (sd, cpu, "%-*s 0x%.*x %-*.*s ",		    SIZE_PHASE+1, phase,		    SIZE_PC, (unsigned) pc,		    SIZE_LOCATION, SIZE_LOCATION, buf);      va_start (ap, fmt);      trace_vprintf (sd, cpu, fmt, ap);      va_end (ap);      trace_printf (sd, cpu, "\n");    }}voidtrace_printf VPARAMS ((SIM_DESC sd, sim_cpu *cpu, const char *fmt, ...)){#if !defined __STDC__ && !defined ALMOST_STDC  SIM_DESC sd;  sim_cpu *cpu;  const char *fmt;#endif  va_list ap;  VA_START (ap, fmt);#if !defined __STDC__ && !defined ALMOST_STDC  sd = va_arg (ap, SIM_DESC);  cpu = va_arg (ap, sim_cpu *);  fmt = va_arg (ap, const char *);#endif  trace_vprintf (sd, cpu, fmt, ap);  va_end (ap);}voiddebug_printf VPARAMS ((sim_cpu *cpu, const char *fmt, ...)){#if !defined __STDC__ && !defined ALMOST_STDC  sim_cpu *cpu;  const char *fmt;#endif  va_list ap;  VA_START (ap, fmt);#if !defined __STDC__ && !defined ALMOST_STDC  cpu = va_arg (ap, sim_cpu *);  fmt = va_arg (ap, const char *);#endif  if (CPU_DEBUG_FILE (cpu) == NULL)    (* STATE_CALLBACK (CPU_STATE (cpu))->evprintf_filtered)      (STATE_CALLBACK (CPU_STATE (cpu)), fmt, ap);  else    vfprintf (CPU_DEBUG_FILE (cpu), fmt, ap);  va_end (ap);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -