File: debug.h

package info (click to toggle)
squid 7.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,440 kB
  • sloc: cpp: 184,513; ansic: 12,442; sh: 5,688; makefile: 5,247; perl: 2,560; sql: 326; python: 240; awk: 141; sed: 1
file content (47 lines) | stat: -rw-r--r-- 1,423 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * Copyright (C) 1996-2025 The Squid Software Foundation and contributors
 *
 * Squid software is distributed under GPLv2+ license and includes
 * contributions from numerous individuals and organizations.
 * Please see the COPYING and CONTRIBUTORS files for details.
 */

#ifndef SQUID_COMPAT_DEBUG_H
#define SQUID_COMPAT_DEBUG_H

/*
 * A debug method for use of external helpers and tools.
 * It shunts the debug messages down stderr for logging by Squid
 * or display to the user instead of corrupting the stdout data stream.
 */
#if HAVE_UNISTD_H
#include <unistd.h>
#endif

/* Debugging stuff */

extern int debug_enabled;

/* the macro overload style is really a gcc-ism */
#if defined(__GNUC__) || defined(__SUNPRO_CC)

#define debug(X...) \
                     if (debug_enabled) { \
                         fprintf(stderr, "%s(%d): pid=%ld :", __FILE__, __LINE__, static_cast<long>(getpid())); \
                         fprintf(stderr,X); \
                     } else (void)0

#define ndebug(content) ndebug_(__FILE__, __LINE__, content)
#define ndebug_(file, line, content) if (debug_enabled) { \
    std::cerr << file << '(' << line << ')' << ": pid=" << getpid() << ':' \
        << content << std::endl; \
    } else (void)0

#else /* __GNUC__ || __SUNPRO_CC */

/* non-GCC compilers can't do the above macro define yet. */
void debug(const char *format,...);
#endif

#endif /* SQUID_COMPAT_DEBUG_H */