-/* Copyright (c) 2010-2013. The SimGrid Team.
+/* Copyright (c) 2010-2014. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
+ * under the terms of the license (GNU LGPL) which comes with this package. */
#include "instr/instr_private.h"
#include "simgrid/sg_config.h"
XBT_DEBUG("Tracing starts");
/* init the tracing module to generate the right output */
- /* open the trace file */
+ /* open internal buffer */
+ TRACE_init();
/* open the trace file(s) */
const char* format = sg_cfg_get_string(OPT_TRACING_FORMAT);
}else{
xbt_die("Unknown trace format :%s ", format);
}
+ /* close internal buffer */
+ TRACE_finalize();
/* de-activate trace */
trace_active = 0;
XBT_DEBUG("Tracing is off");
/* tracing */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING,
"Enable Tracing.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING, "no");
/* register platform in the trace */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_PLATFORM,
"Register the platform in the trace as a hierarchy.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_PLATFORM, "no");
/* register platform in the trace */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_TOPOLOGY,
"Register the platform topology in the trace as a graph.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_TOPOLOGY, "yes");
/* smpi */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI,
"Tracing of the SMPI interface.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI, "no");
/* smpi grouped */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_GROUP,
"Group MPI processes by host.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_GROUP, "no");
/* smpi computing */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING,
"Generate states for timing out of SMPI parts of the application",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING, "no");
/* smpi internals */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS,
"View internal messages sent by Collective communications in SMPI",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS, "no");
/* tracing categorized resource utilization traces */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_CATEGORIZED,
"Tracing categorized resource utilization of hosts and links.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_CATEGORIZED, "no");
/* tracing uncategorized resource utilization */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_UNCATEGORIZED,
"Tracing uncategorized resource utilization of hosts and links.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_UNCATEGORIZED, "no");
/* msg process */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_MSG_PROCESS,
"Tracing of MSG process behavior.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_MSG_PROCESS, "no");
/* msg process */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_MSG_VM,
"Tracing of MSG process behavior.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_MSG_VM, "no");
/* disable tracing link */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_LINK,
"Do not trace link bandwidth and latency.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_LINK, "no");
/* disable tracing link */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_POWER,
"Do not trace host power.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_POWER, "no");
/* tracing buffer */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_BUFFER,
"Buffer trace events to put them in temporal order.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_BUFFER, "yes");
/* tracing one link only */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_ONELINK_ONLY,
"Use only routes with one link to trace platform.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_ONELINK_ONLY, "no");
/* disable destroy */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY,
"Disable platform containers destruction.",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY, "no");
/* basic -- Avoid extended events (impoverished trace file) */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_BASIC,
"Avoid extended events (impoverished trace file).",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_BASIC, "no");
/* display_sizes -- Extended events with message size information */
xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES,
"(smpi only for now) Extended events with message size information",
- xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES, "no");
/* format -- Switch the ouput format of Tracing */
" information that would be registered otherwise.",
detailed);
print_line (OPT_TRACING_DISPLAY_SIZES, "Only works for SMPI now. Add message size information",
- "Message size (in bytes) is added to links, and to states. For collectives, the displayed value \n"
- "is the more relevant to the collective (total sent by the process, usually)",
+ " Message size (in bytes) is added to links, and to states. For collectives,\n"
+ " the displayed value is the more relevant to the collective (total sent by\n"
+ " the process, usually)",
detailed);
print_line (OPT_TRACING_FORMAT, "Only works for SMPI now. Switch output format",
- "Default format is Paje. Time independent traces are also supported, \n"
- "to output traces that can later be used by the trace replay tool",
+ " Default format is Paje. Time independent traces are also supported,\n"
+ " to output traces that can later be used by the trace replay tool",
detailed);
print_line (OPT_TRACING_FORMAT_TI_ONEFILE, "Only works for SMPI now, and TI output format",
- "By default, each process outputs to a separate file, inside a filename_files folder \n"
- "By setting this option to yes, all processes will output to only one file \n"
- "This is meant to avoid opening thousands of files with large simulations",
+ " By default, each process outputs to a separate file, inside a filename_files folder\n"
+ " By setting this option to yes, all processes will output to only one file\n"
+ " This is meant to avoid opening thousands of files with large simulations",
detailed);
print_line (OPT_TRACING_COMMENT, "Comment to be added on the top of the trace file.",
" Use this to add a comment line to the top of the trace file.",