1
1
openmpi/opal/util/trace.c

75 строки
2.0 KiB
C
Исходник Обычный вид История

/* @file */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "opal_config.h"
#include "opal/util/output.h"
#include "opal/mca/mca.h"
#include "opal/mca/base/base.h"
#include "opal/util/trace.h"
int opal_trace_handle;
/*
* Local state
*/
#if OPAL_ENABLE_TRACE
static opal_output_stream_t tracer;
#endif
void opal_trace_init(void)
{
#if OPAL_ENABLE_TRACE
int param, value;
param = mca_base_param_reg_int_name("trace", "verbose",
"Verbosity level for opal trace system",
false, false, 0, &value);
OBJ_CONSTRUCT(&tracer, opal_output_stream_t);
/* if the value is < 0, then we want the output to go to the screen */
if (0 > value) {
tracer.lds_want_file = false;
tracer.lds_want_stderr = true;
value = -1 * value;
} else if (0 == value) { /* don't provide any output */
opal_trace_handle = -1;
return;
} else {
/* get a file setup for opal_output to use for the trace */
tracer.lds_file_suffix = "trace";
tracer.lds_want_file = true;
}
tracer.lds_verbose_level = value;
opal_trace_handle = opal_output_open(&tracer);
#endif
}
void opal_trace_finalize(void)
{
#if OPAL_ENABLE_TRACE
opal_output_close(opal_trace_handle);
OBJ_DESTRUCT(&tracer);
#endif
}