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

📄 macedon_trace.cc

📁 这是一个著名的应用层组播中间件的源码
💻 CC
字号:
//Copyright (c) 2004, Charles Killian, Adolfo Rodriguez, Dejan Kostic, Sooraj Bhat, and Amin Vahdat//All rights reserved.////Redistribution and use in source and binary forms, with or without//modification, are permitted provided that the following conditions are met:////   * Redistributions of source code must retain the above copyright//     notice, this list of conditions and the following disclaimer.//   * Redistributions in binary form must reproduce the above copyright//     notice, this list of conditions and the following disclaimer in//     the documentation and/or other materials provided with the//     distribution.//   * Neither the names of Duke University nor The University of//     California, San Diego, nor the names of its contributors//     may be used to endorse or promote products derived from//     this software without specific prior written permission.////THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"//AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE//IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE//DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE//FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL//DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR//SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,//OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE//USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE./*    Adolfo Rodriguez    Paul Pauca    macedon-trace.cc    20011020*/#include "macedon.h"#include <stdarg.h>//#define MACEDON_TRACE_LIMIT    // limit tracing to certain address//#define MACEDON_TRACE_TIME 370.0#define MACEDON_TRACE_NUM 3static int MACEDON_TRACE_LIST[MACEDON_TRACE_NUM] = {0x21c, 0x1d0, 0x1ce};pthread_mutex_t debug_lock;char trace_buf_[MACEDON_MAX_TRACE_SIZE+5];int LEDA_get_simulator_ID(int number_);//  #define DISABLE_DEBUGGINGint global_keep_quiet = 0;int current_debug_level = 0;void debug (int level, char *format, ... )     {      #ifndef DISABLE_DEBUGGING  if ((level <= current_debug_level) && !global_keep_quiet)    {      struct timezone tz_;      timeval clock_;      gettimeofday(&clock_, &tz_);      double now = (clock_.tv_sec+(double)clock_.tv_usec/1000000.0);      printf ("%s %lf %d ", get_hostname(), now, pthread_self());      va_list arglist;            va_start (arglist, format);            vprintf (format, arglist);      va_end (arglist);      fflush(stdout);    }#endif}void MACEDON_Agent::trace_print(){  if (keep_quiet) {    return;  }  int size;  double curtime = Scheduler::instance().clock();  int perform_trace=1;  char name[80];  int simulator_ID=0;#ifdef NSPORT  if (gethostname(name, sizeof(name)) == -1)    {      printf("Bad host name.\n");      exit(140);    }      if (!strncmp (name,"client", 6))	{//  	  int number =participants.inf(participants.get_item(atoi(name+6)));	  int number =(atoi(name+6));//  	   simulator_ID= LEDA_get_simulator_ID(number);	}#endif#ifdef MACEDON_TRACE_LIMIT  int i;  perform_trace=0;a  for (i=0; i<MACEDON_TRACE_NUM; i++)    {      if (here_.addr_ == MACEDON_TRACE_LIST[i])	perform_trace=1;    }#endif#ifdef MACEDON_TRACE_TIME  if (curtime < MACEDON_TRACE_TIME)    perform_trace = 0;#endif    if(perform_trace)    {      size = strlen(trace_buf_);      if (strlen(trace_buf_) > MACEDON_MAX_TRACE_SIZE)	{	  printf("Macedon trace buffer overrun  Trying to trace %d when %d is the max\n", size, MACEDON_MAX_TRACE_SIZE);	  exit(4);	}#ifndef NSPORT      printf("Node %.8x (%f): %s", here_.addr_, curtime, trace_buf_);#else      printf("Node %.8x %s %f %d %d %s", here_.addr_,name, curtime, pthread_self(), pt_type, trace_buf_);      //      printf("Nd %x %f %s", here_.addr_, curtime, trace_buf_);#endif            fflush(stdout);    }}

⌨️ 快捷键说明

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