From 6e7c62285c235ad0f83be9f87d48a0f33a7d2032 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 20 Feb 2015 15:31:21 -0800 Subject: Add a facility to control tracing without recompiling This will help greatly when it comes to diagnosing customer issues. --- src/core/debug/trace.h | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/core/debug/trace.h (limited to 'src/core/debug/trace.h') diff --git a/src/core/debug/trace.h b/src/core/debug/trace.h new file mode 100644 index 0000000000..337e871aaa --- /dev/null +++ b/src/core/debug/trace.h @@ -0,0 +1,51 @@ +/* + * + * Copyright 2015, Google Inc. + * 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 name of Google Inc. 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. + * + */ + +#ifndef GRPC_CORE_DEBUG_TRACE_H +#define GRPC_CORE_DEBUG_TRACE_H + +#include + +typedef enum { + GRPC_TRACE_SURFACE = 1 << 0, + GRPC_TRACE_CHANNEL = 1 << 1, + GRPC_TRACE_TCP = 1 << 2, + GRPC_TRACE_SECURE_ENDPOINT = 1 << 3 +} grpc_trace_bit_value; + +extern gpr_uint32 grpc_trace_bits; + +void grpc_init_trace_bits(); + +#endif + -- cgit v1.2.3 From 46863cffb631c68cf302c387e4520bbbe263a43c Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 20 Feb 2015 15:58:05 -0800 Subject: Make it possible to compile out tracing --- src/core/debug/trace.c | 5 +++++ src/core/debug/trace.h | 9 +++++++++ 2 files changed, 14 insertions(+) (limited to 'src/core/debug/trace.h') diff --git a/src/core/debug/trace.c b/src/core/debug/trace.c index 157a4d5f34..cdbe168fc8 100644 --- a/src/core/debug/trace.c +++ b/src/core/debug/trace.c @@ -39,6 +39,7 @@ #include #include "src/core/support/env.h" +#if GRPC_ENABLE_TRACING gpr_uint32 grpc_trace_bits; static void add(const char *beg, const char *end, char ***ss, size_t *ns) { @@ -102,4 +103,8 @@ void grpc_init_trace_bits() { gpr_free(e); } } +#else +void grpc_init_trace_bits() { +} +#endif diff --git a/src/core/debug/trace.h b/src/core/debug/trace.h index 337e871aaa..167ef3c6ea 100644 --- a/src/core/debug/trace.h +++ b/src/core/debug/trace.h @@ -36,6 +36,11 @@ #include +/* set to zero to remove all debug trace code */ +#ifndef GRPC_ENABLE_TRACING +# define GRPC_ENABLE_TRACING 1 +#endif + typedef enum { GRPC_TRACE_SURFACE = 1 << 0, GRPC_TRACE_CHANNEL = 1 << 1, @@ -43,7 +48,11 @@ typedef enum { GRPC_TRACE_SECURE_ENDPOINT = 1 << 3 } grpc_trace_bit_value; +#if GRPC_ENABLE_TRACING extern gpr_uint32 grpc_trace_bits; +#else +# define grpc_trace_bits 0 +#endif void grpc_init_trace_bits(); -- cgit v1.2.3