A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
[trace] renaming source file to reflect its speciality
[simgrid.git]
/
src
/
instr
/
instr_paje_trace.c
diff --git
a/src/instr/instr_paje_trace.c
b/src/instr/instr_paje_trace.c
index
d2c4026
..
b994510
100644
(file)
--- a/
src/instr/instr_paje_trace.c
+++ b/
src/instr/instr_paje_trace.c
@@
-155,7
+155,9
@@
void TRACE_paje_start(void)
{
char *filename = TRACE_get_filename();
tracing_file = fopen(filename, "w");
- xbt_assert (tracing_file != NULL, "Tracefile %s could not be opened for writing.", filename);
+ if (tracing_file == NULL){
+ THROWF (system_error, 1, "Tracefile %s could not be opened for writing.", filename);
+ }
XBT_DEBUG("Filename %s is open for writing", filename);
@@
-169,6
+171,7
@@
void TRACE_paje_end(void)
{
fclose(tracing_file);
char *filename = TRACE_get_filename();
+ xbt_dynar_free (&buffer);
XBT_DEBUG("Filename %s is closed", filename);
}
@@
-176,6
+179,7
@@
double TRACE_last_timestamp_to_dump = 0;
//dumps the trace file until the timestamp TRACE_last_timestamp_to_dump
void TRACE_paje_dump_buffer (int force)
{
+ if (!TRACE_is_enabled()) return;
XBT_DEBUG("%s: dump until %f. starts", __FUNCTION__, TRACE_last_timestamp_to_dump);
if (force){
paje_event_t event;
@@
-188,7
+192,7
@@
void TRACE_paje_dump_buffer (int force)
buffer = xbt_dynar_new (sizeof(paje_event_t), NULL);
}else{
paje_event_t event;
- while (
xbt_dynar_length (buffer) > 0
){
+ while (
!xbt_dynar_is_empty(buffer)
){
double head_timestamp = (*(paje_event_t*)xbt_dynar_get_ptr(buffer, 0))->timestamp;
if (head_timestamp > TRACE_last_timestamp_to_dump){
break;
@@
-223,7
+227,7
@@
void TRACE_paje_create_header(void)
%%EndEventDef \n\
%%EventDef PajeDefineEventType %d \n\
%% Alias string \n\
-%%
Entity
Type string \n\
+%%
Container
Type string \n\
%% Name string \n\
%% Color color \n\
%%EndEventDef \n\
@@
-250,46
+254,46
@@
void TRACE_paje_create_header(void)
%%EventDef PajeDestroyContainer %d \n\
%% Time date \n\
%% Type string \n\
-%%
Container
string \n\
+%%
Name
string \n\
%%EndEventDef \n\
%%EventDef PajeSetVariable %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
-%% Value
string
\n\
+%% Value
double
\n\
%%EndEventDef\n\
%%EventDef PajeAddVariable %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
-%% Value
string
\n\
+%% Value
double
\n\
%%EndEventDef\n\
%%EventDef PajeSubVariable %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
-%% Value
string
\n\
+%% Value
double
\n\
%%EndEventDef\n\
%%EventDef PajeSetState %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%%EndEventDef\n\
%%EventDef PajePushState %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%%EndEventDef\n\
%%EventDef PajePopState %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%%EndEventDef\n\
%%EventDef PajeStartLink %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%% SourceContainer string \n\
@@
-297,7
+301,7
@@
void TRACE_paje_create_header(void)
%%EndEventDef\n\
%%EventDef PajeEndLink %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%% DestContainer string \n\
@@
-305,7
+309,7
@@
void TRACE_paje_create_header(void)
%%EndEventDef\n\
%%EventDef PajeNewEvent %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%%EndEventDef\n",
@@
-331,37
+335,25
@@
void TRACE_paje_create_header(void)
/* internal do the instrumentation module */
static void insert_into_buffer (paje_event_t tbi)
{
+ if (TRACE_buffer() == 0){
+ tbi->print (tbi);
+ tbi->free (tbi);
+ return;
+ }
XBT_DEBUG("%s: insert event_type=%d, timestamp=%f, buffersize=%ld)", __FUNCTION__, tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer));
unsigned int i;
- unsigned long len = xbt_dynar_length(buffer);
- if (len == 0){
- xbt_dynar_push (buffer, &tbi);
- XBT_DEBUG("%s: inserted at beginning", __FUNCTION__);
- }else{
- //check if last event has the same timestamp that tbi event
- paje_event_t e2 = *(paje_event_t*)xbt_dynar_get_ptr (buffer, len-1);
- if (e2->timestamp == tbi->timestamp){
- //insert at the end
- XBT_DEBUG("%s: inserted at end, pos = %ld", __FUNCTION__, len);
- xbt_dynar_insert_at (buffer, len, &tbi);
- return;
- }
- int inserted = 0;
- for (i = 0; i < len; i++){
- paje_event_t e1 = *(paje_event_t*)xbt_dynar_get_ptr(buffer, i);
- if (e1->timestamp > tbi->timestamp){
- xbt_dynar_insert_at (buffer, i, &tbi);
- XBT_DEBUG("%s: inserted at %d", __FUNCTION__, i);
- inserted = 1;
- break;
- }
- }
- if (!inserted){
- xbt_dynar_push (buffer, &tbi);
- XBT_DEBUG("%s: inserted at end", __FUNCTION__);
- }
+ for (i = xbt_dynar_length(buffer); i > 0; i--) {
+ paje_event_t e1 = *(paje_event_t*)xbt_dynar_get_ptr(buffer, i - 1);
+ if (e1->timestamp <= tbi->timestamp)
+ break;
}
+ xbt_dynar_insert_at(buffer, i, &tbi);
+ if (i == 0)
+ XBT_DEBUG("%s: inserted at beginning", __FUNCTION__);
+ else
+ XBT_DEBUG("%s: inserted at%s %d", __FUNCTION__,
+ (i == xbt_dynar_length(buffer) - 1 ? " end, pos =" : ""), i);
}
static void print_pajeDefineContainerType(paje_event_t event)
@@
-433,14
+425,14
@@
static void print_pajeCreateContainer(paje_event_t event)
{
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp);
if (event->timestamp == 0){
- fprintf(tracing_file, "%d 0 %s %s %s
%s
\n",
+ fprintf(tracing_file, "%d 0 %s %s %s
\"%s\"
\n",
event->event_type,
((createContainer_t)event->data)->container->id,
((createContainer_t)event->data)->container->type->id,
((createContainer_t)event->data)->container->father->id,
((createContainer_t)event->data)->container->name);
}else{
- fprintf(tracing_file, "%d %lf %s %s %s
%s
\n",
+ fprintf(tracing_file, "%d %lf %s %s %s
\"%s\"
\n",
event->event_type,
event->timestamp,
((createContainer_t)event->data)->container->id,
@@
-647,12
+639,17
@@
static void print_pajeNewEvent (paje_event_t event)
static void free_paje_event (paje_event_t event)
{
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp);
- if (event->event_type == PAJE_StartLink){
+ switch (event->event_type){
+ case PAJE_StartLink:
xbt_free (((startLink_t)(event->data))->value);
xbt_free (((startLink_t)(event->data))->key);
- }else if (event->event_type == PAJE_EndLink){
+ break;
+ case PAJE_EndLink:
xbt_free (((endLink_t)(event->data))->value);
xbt_free (((endLink_t)(event->data))->key);
+ break;
+ default:
+ break;
}
xbt_free (event->data);
xbt_free (event);