コード例 #1
0
void new_pajePushStateWithExtra (double timestamp, container_t container, type_t type, val_t value, void* extra)
{
  paje_event_t event = xbt_new0(s_paje_event_t, 1);
  event->event_type = PAJE_PushState;
  event->timestamp = timestamp;
  event->print = active_writer.print_PushState;
  event->free                             = &free_paje_event;
  event->data = xbt_new0(s_pushState_t, 1);
  (static_cast<pushState_t>(event->data))->type = type;
  (static_cast<pushState_t>(event->data))->container = container;
  (static_cast<pushState_t>(event->data))->value = value;
  (static_cast<pushState_t>(event->data))->extra = extra;

#if HAVE_SMPI
  if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
    smpi_trace_call_location_t* loc = smpi_trace_get_call_location();
    (static_cast<pushState_t>(event->data))->filename   = loc->filename;
    (static_cast<pushState_t>(event->data))->linenumber = loc->linenumber;
  }
#endif

  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, static_cast<int>(event->event_type), event->timestamp);

  insert_into_buffer (event);
}
コード例 #2
0
ファイル: instr_paje_events.cpp プロジェクト: simgrid/simgrid
PajeEvent::PajeEvent(Container* container, Type* type, double timestamp, e_event_type eventType)
    : container_(container), type_(type), timestamp_(timestamp), eventType_(eventType)
{
  XBT_DEBUG("%s: event_type=%u, timestamp=%.*f", __func__, eventType_, TRACE_precision(), timestamp_);
  if (trace_format == simgrid::instr::TraceFormat::Paje) {
    stream_ << std::fixed << std::setprecision(TRACE_precision());
    stream_ << eventType_ << " " << timestamp_ << " " << type_->get_id() << " " << container_->get_id();
  }
  insert_into_buffer();
};
コード例 #3
0
void new_pajeResetState (double timestamp, container_t container, type_t type)
{
  paje_event_t event = xbt_new0(s_paje_event_t, 1);
  event->event_type = PAJE_ResetState;
  event->timestamp = timestamp;
  event->print = active_writer.print_ResetState;
  event->free                              = &free_paje_event;
  event->data = xbt_new0(s_resetState_t, 1);
  (static_cast<resetState_t>(event->data))->type = type;
  (static_cast<resetState_t>(event->data))->container = container;

  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);

  insert_into_buffer (event);
}
コード例 #4
0
ファイル: instr_trace.cpp プロジェクト: fabienchaix/simgrid
void new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value)
{
  paje_event_t event = xbt_new0(s_paje_event_t, 1);
  event->event_type = PAJE_NewEvent;
  event->timestamp = timestamp;
  event->print = active_writer.print_NewEvent;
  event->free = free_paje_event;
  event->data = xbt_new0(s_newEvent_t, 1);
  ((newEvent_t)(event->data))->type = type;
  ((newEvent_t)(event->data))->container = container;
  ((newEvent_t)(event->data))->value = value;

  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);

  insert_into_buffer (event);
}
コード例 #5
0
void* worker(void* filename)
{
  char* fullFileName=(char*)malloc(sizeof(char)*MAXLINESIZE);
  strcpy(fullFileName,pathToDir);
  strcat(fullFileName,filename);
  FILE* file=fopen(fullFileName,"r");
  if(!file)
  {
    printf("Could not open file %s, line number: %d",fullFileName,line_no);
    pthread_exit(NULL);
  }
  char c;
  int line_number=1;
  char* fileLine=(char*)malloc(sizeof(char)*MAXLINESIZE);
  while(c!=EOF)
  {
    int i=0;
    while(!feof(file) && (c=fgetc(file)) && c!=EOF && c!='\n' )
    {
      fileLine[i]=c;
      i++;
    }
    fileLine[i]='\0';
    if(strcontains(fileLine,keyword,strlen(fileLine),strlen(keyword))==1)//insert item
    {
      char* printLine=(char*)malloc(sizeof(char)*MAXLINESIZE); 
      strcpy(printLine,fileLine);
      char* printFileName=(char*)malloc(sizeof(char)*MAXLINESIZE);
      strcpy(printFileName,filename);
      pthread_mutex_lock(&buffer_lock);
      insert_into_buffer(printFileName,line_number,printLine);     
      pthread_mutex_unlock(&buffer_lock);
    }
    line_number++;
  }
  free(fileLine);
  fclose(file);
  free(filename);
  pthread_mutex_lock(&running_mutex);
  running_threads--;
  pthread_mutex_unlock(&running_mutex);
  free(fullFileName);
  pthread_exit(NULL);
}
コード例 #6
0
void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer,
                      const char *value, const char *key)
{
  paje_event_t event = xbt_new0(s_paje_event_t, 1);
  event->event_type = PAJE_EndLink;
  event->timestamp = timestamp;
  event->print = active_writer.print_EndLink;
  event->free                               = &free_paje_event;
  event->data = xbt_new0(s_endLink_t, 1);
  (static_cast<endLink_t>(event->data))->type = type;
  (static_cast<endLink_t>(event->data))->container = container;
  (static_cast<endLink_t>(event->data))->destContainer = destContainer;
  (static_cast<endLink_t>(event->data))->value = xbt_strdup(value);
  (static_cast<endLink_t>(event->data))->key = xbt_strdup(key);

  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);

  insert_into_buffer (event);
}
コード例 #7
0
ファイル: instr_trace.cpp プロジェクト: fabienchaix/simgrid
void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer,
                        const char *value, const char *key)
{
  paje_event_t event = xbt_new0(s_paje_event_t, 1);
  event->event_type = PAJE_StartLink;
  event->timestamp = timestamp;
  event->print = active_writer.print_StartLink;
  event->free = free_paje_event;
  event->data = xbt_new0(s_startLink_t, 1);
  ((startLink_t)(event->data))->type = type;
  ((startLink_t)(event->data))->container = container;
  ((startLink_t)(event->data))->sourceContainer = sourceContainer;
  ((startLink_t)(event->data))->value = xbt_strdup(value);
  ((startLink_t)(event->data))->key = xbt_strdup(key);
  ((startLink_t)(event->data))->size = -1;
  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);

  insert_into_buffer (event);
}
コード例 #8
0
ファイル: instr_trace.cpp プロジェクト: fabienchaix/simgrid
void new_pajeSetState (double timestamp, container_t container, type_t type, val_t value)
{
  paje_event_t event = xbt_new0(s_paje_event_t, 1);
  event->event_type = PAJE_SetState;
  event->timestamp = timestamp;
  event->print = active_writer.print_SetState;
  event->free = free_paje_event;
  event->data = xbt_new0(s_setState_t, 1);
  ((setState_t)(event->data))->type = type;
  ((setState_t)(event->data))->container = container;
  ((setState_t)(event->data))->value = value;

#if HAVE_SMPI
  if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
    smpi_trace_call_location_t* loc = smpi_trace_get_call_location();
    ((setState_t)(event->data))->filename   = loc->filename;
    ((setState_t)(event->data))->linenumber = loc->linenumber;
  }
#endif

  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);

  insert_into_buffer (event);
}
コード例 #9
0
ファイル: logconfig.c プロジェクト: credativ/corosync
/*
 * format set is the only global specific option that
 * doesn't apply at system/subsystem level.
 */
static int corosync_main_config_format_set (
	const char **error_string)
{
	const char *error_reason;
	char new_format_buffer[PATH_MAX];
	char *value = NULL;
	int err = 0;

	if (map_get_string("logging.fileline", &value) == CS_OK) {
		if (strcmp (value, "on") == 0) {
			if (!insert_into_buffer(new_format_buffer,
					sizeof(new_format_buffer),
					" %f:%l", "g]")) {
				err = logsys_format_set(new_format_buffer);
			} else
			if (!insert_into_buffer(new_format_buffer,
					sizeof(new_format_buffer),
					"%f:%l", NULL)) {
				err = logsys_format_set(new_format_buffer);
			}
		} else
		if (strcmp (value, "off") == 0) {
			/* nothing to do here */
		} else {
			error_reason = "unknown value for fileline";
			free(value);
			goto parse_error;
		}

		free(value);
	}

	if (err) {
		error_reason = "not enough memory to set logging format buffer";
		goto parse_error;
	}

	if (map_get_string("logging.function_name", &value) == CS_OK) {
		if (strcmp (value, "on") == 0) {
			if (!insert_into_buffer(new_format_buffer,
					sizeof(new_format_buffer),
					"%n:", "f:")) {
				err = logsys_format_set(new_format_buffer);
			} else
			if (!insert_into_buffer(new_format_buffer,
					sizeof(new_format_buffer),
					" %n", "g]")) {
				err = logsys_format_set(new_format_buffer);
			}
		} else
		if (strcmp (value, "off") == 0) {
			/* nothing to do here */
		} else {
			error_reason = "unknown value for function_name";
			free(value);
			goto parse_error;
		}

		free(value);
	}

	if (err) {
		error_reason = "not enough memory to set logging format buffer";
		goto parse_error;
	}

	if (map_get_string("logging.timestamp", &value) == CS_OK) {
		if (strcmp (value, "on") == 0) {
			if(!insert_into_buffer(new_format_buffer,
					sizeof(new_format_buffer),
					"%t ", NULL)) {
				err = logsys_format_set(new_format_buffer);
			}
		} else
		if (strcmp (value, "off") == 0) {
			/* nothing to do here */
		} else {
			error_reason = "unknown value for timestamp";
			free(value);
			goto parse_error;
		}

		free(value);
	}

	if (err) {
		error_reason = "not enough memory to set logging format buffer";
		goto parse_error;
	}

	return (0);

parse_error:
	*error_string = error_reason;

	return (-1);
}