debug.cc File Reference
#include "squid.h"
#include "Debug.h"
#include "fd.h"
#include "ipc/Kids.h"
#include "SquidTime.h"
#include "util.h"
#include <algorithm>
#include "globals.h"
Include dependency graph for debug.cc:

Go to the source code of this file.

Classes

class  DebugFile
 a (FILE*, file name) pair that uses stderr FILE as the last resort More...
 

Macros

#define CTX_MAX_LEVEL   255
 

Functions

static const char * debugLogTime (void)
 
static const char * debugLogKid (void)
 
static void ctx_print (void)
 
static void _db_print_stderr (const char *format, va_list args)
 
static void _db_print_file (const char *format, va_list args)
 
FILE * DebugStream ()
 
void StopUsingDebugLog ()
 start logging to stderr (instead of cache.log, if any) More...
 
void ResyncDebugLog (FILE *newFile)
 a hack for low-level file descriptor manipulations in ipcCreate() More...
 
static void _db_print (const bool forceAlert, const char *format,...)
 
static void debugArg (const char *arg)
 
static void debugOpenLog (const char *logfile)
 
void _db_init (const char *logfile, const char *options)
 
void _db_rotate_log (void)
 
void xassert (const char *msg, const char *file, int line)
 
static const char * ctx_get_descr (Ctx ctx)
 
Ctx ctx_enter (const char *descr)
 
void ctx_exit (Ctx ctx)
 
std::ostream & ForceAlert (std::ostream &s)
 

Variables

static int Ctx_Lock = 0
 
static DebugFile TheLog
 
static int Ctx_Warn_Level = 32
 
static int Ctx_Reported_Level = -1
 
static int Ctx_Valid_Level = -1
 
static int Ctx_Current_Level = -1
 
static const char * Ctx_Descrs [CTX_MAX_LEVEL+1]
 

Macro Definition Documentation

◆ CTX_MAX_LEVEL

#define CTX_MAX_LEVEL   255

Definition at line 702 of file debug.cc.

Function Documentation

◆ _db_init()

void _db_init ( const char *  logfile,
const char *  options 
)

Definition at line 490 of file debug.cc.

Referenced by ConfigureDebugging(), main(), mainReconfigureFinish(), and IcmpPinger::Open().

◆ _db_print()

static void _db_print ( const bool  forceAlert,
const char *  format,
  ... 
)
static

◆ _db_print_file()

static void _db_print_file ( const char *  format,
va_list  args 
)
static

Definition at line 190 of file debug.cc.

References Ctx_Lock, ctx_print(), debug_log, and NULL.

Referenced by _db_print().

◆ _db_print_stderr()

static void _db_print_stderr ( const char *  format,
va_list  args 
)
static

Definition at line 204 of file debug.cc.

References debug_log, Debug::Level(), and Debug::log_stderr.

Referenced by _db_print().

◆ _db_rotate_log()

void _db_rotate_log ( void  )

Definition at line 508 of file debug.cc.

Referenced by mainRotate().

◆ ctx_enter()

Ctx ctx_enter ( const char *  descr)

◆ ctx_exit()

void ctx_exit ( Ctx  ctx)

◆ ctx_get_descr()

static const char * ctx_get_descr ( Ctx  ctx)
static

Definition at line 782 of file debug.cc.

References Ctx_Descrs, and CTX_MAX_LEVEL.

Referenced by ctx_print().

◆ ctx_print()

static void ctx_print ( void  )
static

◆ debugArg()

static void debugArg ( const char *  arg)
static

Definition at line 241 of file debug.cc.

References arg, assert, Debug::Levels, MAX_DEBUG_SECTIONS, and Debug::rotateNumber.

Referenced by Debug::parseOptions().

◆ debugLogKid()

static const char * debugLogKid ( void  )
static

Definition at line 606 of file debug.cc.

References buf, and KidIdentifier.

Referenced by _db_print().

◆ debugLogTime()

static const char * debugLogTime ( void  )
static

Definition at line 575 of file debug.cc.

References assert, buf, current_time, getCurrentTime(), Debug::Level(), and sz.

Referenced by _db_print().

◆ debugOpenLog()

static void debugOpenLog ( const char *  logfile)
static

Definition at line 281 of file debug.cc.

References DebugFile::clear(), log(), logfile, NULL, O_TEXT, DebugFile::reset(), and TheLog.

Referenced by _db_init(), and _db_rotate_log().

◆ DebugStream()

FILE* DebugStream ( )

cache.log FILE or, as the last resort, stderr stream; may be nil during static initialization and destruction!

Definition at line 78 of file debug.cc.

References DebugFile::file(), and TheLog.

◆ ForceAlert()

std::ostream& ForceAlert ( std::ostream &  s)

Does not change the stream being manipulated. Exists for its side effect: In a debugs() context, forces the message to become a syslog ALERT. Outside of debugs() context, has no effect and should not be used.

Definition at line 877 of file debug.cc.

Referenced by death(), and fatal_common().

◆ ResyncDebugLog()

void ResyncDebugLog ( FILE *  newFile)

Definition at line 89 of file debug.cc.

References DebugFile::file_, and TheLog.

Referenced by ipcCreate().

◆ StopUsingDebugLog()

void StopUsingDebugLog ( )

Definition at line 83 of file debug.cc.

References DebugFile::clear(), and TheLog.

Referenced by sendSignal().

◆ xassert()

void xassert ( const char *  msg,
const char *  file,
int  line 
)

Definition at line 619 of file debug.cc.

References DBG_CRITICAL, debugs, and shutting_down.

Variable Documentation

◆ Ctx_Current_Level

int Ctx_Current_Level = -1
static

Definition at line 714 of file debug.cc.

Referenced by ctx_enter(), ctx_exit(), and ctx_print().

◆ Ctx_Descrs

const char* Ctx_Descrs[CTX_MAX_LEVEL+1]
static

Definition at line 716 of file debug.cc.

Referenced by ctx_enter(), and ctx_get_descr().

◆ Ctx_Lock

int Ctx_Lock = 0
static

Definition at line 30 of file debug.cc.

Referenced by _db_print(), _db_print_file(), and ctx_print().

◆ Ctx_Reported_Level

int Ctx_Reported_Level = -1
static

Definition at line 710 of file debug.cc.

Referenced by ctx_print().

◆ Ctx_Valid_Level

int Ctx_Valid_Level = -1
static

Definition at line 712 of file debug.cc.

Referenced by ctx_exit(), and ctx_print().

◆ Ctx_Warn_Level

int Ctx_Warn_Level = 32
static

Definition at line 708 of file debug.cc.

Referenced by ctx_enter().

◆ TheLog

DebugFile TheLog
static

configured cache.log file or stderr safe during static initialization, even if it has not been constructed yet

Definition at line 75 of file debug.cc.

Referenced by _db_rotate_log(), debugOpenLog(), DebugStream(), ResyncDebugLog(), and StopUsingDebugLog().

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors