From: Alex Rousskov Date: Tue, 22 Feb 2022 21:58:02 +0000 (+0000) Subject: SourceLayout: Move debugs()-related code into src/debug/ (#984) X-Git-Tag: SQUID_6_0_1~231 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=675b84088404c6cc03f848f6c7266ada57cf9b99;p=thirdparty%2Fsquid.git SourceLayout: Move debugs()-related code into src/debug/ (#984) The new library is needed to facilitate debugs() reuse and, perhaps more importantly, reuse of other Squid code that already uses debugs() -- all without build-breaking hacks of copying debug.cc source files and very dangerous stub use in production running code. The Raw class, asHex(), and other I/O manipulators are not specific to debugs() streams. They are now in src/base/. Also removed test-suite/debug, addressing an XXX. That test was misplaced and not really doing anything useful -- the compiler already tests what test-suite/debug was testing (and much more). Also removed the no longer necessary xassert() stub from test-suite/. TODO: Adjust the moved code to use Debug namespace. Those adjustments are likely to trigger debug/Stream.h reorganization, simplifying exposed debugging API. They deserve a dedicated PR. TODO: Convert more helpers to use the new debugging library. This change only adjusts pinger because that adjustment did not require other significant changes. --- diff --git a/configure.ac b/configure.ac index a4bcf4924d..dda2102a3f 100644 --- a/configure.ac +++ b/configure.ac @@ -3688,6 +3688,7 @@ AC_CONFIG_FILES([ src/base/Makefile src/clients/Makefile src/comm/Makefile + src/debug/Makefile src/dns/Makefile src/DiskIO/Makefile src/DiskIO/AIO/Makefile diff --git a/include/unitTestMain.h b/include/unitTestMain.h index 7ec716ba14..6f96da599e 100644 --- a/include/unitTestMain.h +++ b/include/unitTestMain.h @@ -10,7 +10,7 @@ #define SQUID_INCLUDE_UNITTESTMAIN_H #if ENABLE_DEBUG_SECTION -#include "Debug.h" +#include "debug/Stream.h" #endif /* ENABLE_DEBUG_SECTION */ #include diff --git a/src/AuthReg.cc b/src/AuthReg.cc index f0a499d5aa..1048c3a7bc 100644 --- a/src/AuthReg.cc +++ b/src/AuthReg.cc @@ -24,7 +24,7 @@ #include "auth/ntlm/Scheme.h" #endif -#include "Debug.h" +#include "debug/Stream.h" /** * Initialize the authentication modules (if any) diff --git a/src/BandwidthBucket.cc b/src/BandwidthBucket.cc index ba839d9772..48fc8da261 100644 --- a/src/BandwidthBucket.cc +++ b/src/BandwidthBucket.cc @@ -13,7 +13,7 @@ #include "BandwidthBucket.h" #include "ClientInfo.h" #include "comm/Connection.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fde.h" BandwidthBucket::BandwidthBucket(const int speed, const int initialLevelPercent, const double sizeLimit) : diff --git a/src/ConfigParser.cc b/src/ConfigParser.cc index 58ee069c78..bbc97ef581 100644 --- a/src/ConfigParser.cc +++ b/src/ConfigParser.cc @@ -12,7 +12,7 @@ #include "base/RegexPattern.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fatal.h" #include "globals.h" #include "sbuf/Stream.h" diff --git a/src/CpuAffinity.cc b/src/CpuAffinity.cc index 234f6c26cf..b44cb7180c 100644 --- a/src/CpuAffinity.cc +++ b/src/CpuAffinity.cc @@ -13,7 +13,7 @@ #include "CpuAffinity.h" #include "CpuAffinityMap.h" #include "CpuAffinitySet.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "SquidConfig.h" #include "tools.h" diff --git a/src/CpuAffinityMap.cc b/src/CpuAffinityMap.cc index 757c6c02f4..7e24f64b2e 100644 --- a/src/CpuAffinityMap.cc +++ b/src/CpuAffinityMap.cc @@ -12,7 +12,7 @@ #include "base/TextException.h" #include "CpuAffinityMap.h" #include "CpuAffinitySet.h" -#include "Debug.h" +#include "debug/Stream.h" bool CpuAffinityMap::add(const std::vector &aProcesses, const std::vector &aCores) diff --git a/src/CpuAffinitySet.cc b/src/CpuAffinitySet.cc index 2d74d012b8..7b7c0c4126 100644 --- a/src/CpuAffinitySet.cc +++ b/src/CpuAffinitySet.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "base/TextException.h" #include "CpuAffinitySet.h" -#include "Debug.h" +#include "debug/Stream.h" #include "util.h" #include diff --git a/src/DiskIO/AIO/AIODiskFile.cc b/src/DiskIO/AIO/AIODiskFile.cc index c2454bcc47..a3e630fb9a 100644 --- a/src/DiskIO/AIO/AIODiskFile.cc +++ b/src/DiskIO/AIO/AIODiskFile.cc @@ -21,7 +21,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "DiskIO/AIO/AIODiskFile.h" #include "DiskIO/AIO/AIODiskIOStrategy.h" #include "DiskIO/IORequestor.h" diff --git a/src/DiskIO/Blocking/BlockingFile.cc b/src/DiskIO/Blocking/BlockingFile.cc index 839cdde82c..70ef1c2b27 100644 --- a/src/DiskIO/Blocking/BlockingFile.cc +++ b/src/DiskIO/Blocking/BlockingFile.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "BlockingFile.h" -#include "Debug.h" +#include "debug/Stream.h" #include "defines.h" #include "DiskIO/IORequestor.h" #include "DiskIO/ReadRequest.h" diff --git a/src/DiskIO/Mmapped/MmappedFile.cc b/src/DiskIO/Mmapped/MmappedFile.cc index 2f29eeba69..76fe331f05 100644 --- a/src/DiskIO/Mmapped/MmappedFile.cc +++ b/src/DiskIO/Mmapped/MmappedFile.cc @@ -9,7 +9,7 @@ /* DEBUG: section 47 Store Directory Routines */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "DiskIO/IORequestor.h" #include "DiskIO/Mmapped/MmappedFile.h" #include "DiskIO/ReadRequest.h" diff --git a/src/Downloader.cc b/src/Downloader.cc index 012387fb8e..b7f8553e6b 100644 --- a/src/Downloader.cc +++ b/src/Downloader.cc @@ -7,6 +7,7 @@ */ #include "squid.h" +#include "base/Raw.h" #include "client_side.h" #include "client_side_reply.h" #include "client_side_request.h" diff --git a/src/EventLoop.cc b/src/EventLoop.cc index 1f0e1bc3bb..967726d129 100644 --- a/src/EventLoop.cc +++ b/src/EventLoop.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "AsyncEngine.h" #include "base/AsyncCallQueue.h" -#include "Debug.h" +#include "debug/Stream.h" #include "EventLoop.h" #include "fatal.h" #include "SquidTime.h" diff --git a/src/FadingCounter.cc b/src/FadingCounter.cc index a4ed353b34..687ef82c01 100644 --- a/src/FadingCounter.cc +++ b/src/FadingCounter.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "FadingCounter.h" #include "SquidTime.h" diff --git a/src/HttpHdrContRange.cc b/src/HttpHdrContRange.cc index 8cd41518b4..32addf4ff2 100644 --- a/src/HttpHdrContRange.cc +++ b/src/HttpHdrContRange.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "base/Packable.h" -#include "Debug.h" +#include "debug/Stream.h" #include "enums.h" #include "HttpHdrContRange.h" #include "HttpHeaderTools.h" diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc index 4415f886e2..318af12069 100644 --- a/src/HttpHeader.cc +++ b/src/HttpHeader.cc @@ -11,6 +11,7 @@ #include "squid.h" #include "base/CharacterSet.h" #include "base/EnumIterator.h" +#include "base/Raw.h" #include "base64.h" #include "globals.h" #include "http/ContentLengthInterpreter.h" diff --git a/src/Instance.cc b/src/Instance.cc index 83990ab583..462cbbc245 100644 --- a/src/Instance.cc +++ b/src/Instance.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/File.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "fs_io.h" #include "Instance.h" #include "parser/Tokenizer.h" diff --git a/src/LoadableModules.cc b/src/LoadableModules.cc index a2cd053bfd..8da1528b59 100644 --- a/src/LoadableModules.cc +++ b/src/LoadableModules.cc @@ -7,8 +7,8 @@ */ #include "squid.h" -#include "Debug.h" -#include "DebugMessages.h" +#include "debug/Messages.h" +#include "debug/Stream.h" #include "LoadableModule.h" #include "LoadableModules.h" #include "wordlist.h" diff --git a/src/LogTags.cc b/src/LogTags.cc index 29ed70e482..be4c393469 100644 --- a/src/LogTags.cc +++ b/src/LogTags.cc @@ -7,7 +7,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "LogTags.h" void diff --git a/src/Makefile.am b/src/Makefile.am index 26dc260d94..3507c8489d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -31,8 +31,8 @@ LOADABLE_MODULES_SOURCES = \ LoadableModules.cc \ LoadableModules.h -SUBDIRS = mem base anyp helper dns ftp parser comm error eui acl format clients sbuf servers fs repl store DiskIO proxyp -DIST_SUBDIRS = mem base anyp helper dns ftp parser comm error eui acl format clients sbuf servers fs repl store DiskIO proxyp +SUBDIRS = mem debug base anyp helper dns ftp parser comm error eui acl format clients sbuf servers fs repl store DiskIO proxyp +DIST_SUBDIRS = mem debug base anyp helper dns ftp parser comm error eui acl format clients sbuf servers fs repl store DiskIO proxyp if ENABLE_AUTH SUBDIRS += auth @@ -242,8 +242,6 @@ squid_SOURCES = \ CpuAffinityMap.h \ CpuAffinitySet.cc \ CpuAffinitySet.h \ - Debug.h \ - DebugMessages.h \ Downloader.cc \ Downloader.h \ ETag.cc \ @@ -372,7 +370,6 @@ squid_SOURCES = \ client_side_reply.h \ client_side_request.cc \ client_side_request.h \ - debug.cc \ defines.h \ dlink.cc \ dlink.h \ @@ -543,6 +540,7 @@ squid_LDADD = \ log/liblog.la \ format/libformat.la \ sbuf/libsbuf.la \ + debug/libdebug.la \ $(XTRA_OBJS) \ $(REPL_OBJS) \ $(NETTLELIB) \ @@ -614,7 +612,6 @@ ufsdump_SOURCES = \ String.cc \ cbdata.cc \ cbdata.h \ - debug.cc \ dlink.cc \ dlink.h \ tests/stub_fd.cc \ @@ -639,6 +636,7 @@ ufsdump_LDADD = \ fs/libfs.la \ ipc/libipc.la \ mgr/libmgr.la \ + debug/libdebug.la \ $(XTRA_OBJS) \ $(REPL_OBJS) \ $(NETTLELIB) \ @@ -1935,7 +1933,6 @@ tests_test_http_range_SOURCES = \ client_side.h \ client_side_reply.cc \ client_side_request.cc \ - debug.cc \ dlink.cc \ dlink.h \ errorpage.cc \ @@ -2059,6 +2056,7 @@ tests_test_http_range_LDADD = \ base/libbase.la \ mgr/libmgr.la \ sbuf/libsbuf.la \ + debug/libdebug.la \ store/libstore.la \ $(SNMP_LIBS) \ $(top_builddir)/lib/libmisccontainers.la \ @@ -2076,7 +2074,6 @@ tests_test_http_range_LDFLAGS = $(LIBADD_DL) check_PROGRAMS += tests/testHttp1Parser tests_testHttp1Parser_SOURCES = \ - Debug.h \ tests/stub_HelperChildConfig.cc \ tests/testHttp1Parser.cc \ tests/testHttp1Parser.h \ @@ -2329,7 +2326,6 @@ tests_testHttpRequest_SOURCES = \ client_side.h \ client_side_reply.cc \ client_side_request.cc \ - debug.cc \ dlink.cc \ dlink.h \ errorpage.cc \ @@ -2452,6 +2448,7 @@ tests_testHttpRequest_LDADD = \ format/libformat.la \ store/libstore.la \ sbuf/libsbuf.la \ + debug/libdebug.la \ $(REPL_OBJS) \ $(ADAPTATION_LIBS) \ $(ESI_LIBS) \ @@ -2636,7 +2633,6 @@ tests_testCacheManager_SOURCES = \ client_side.h \ client_side_reply.cc \ client_side_request.cc \ - debug.cc \ dlink.cc \ dlink.h \ errorpage.cc \ @@ -2763,6 +2759,7 @@ tests_testCacheManager_LDADD = \ mem/libmem.la \ store/libstore.la \ sbuf/libsbuf.la \ + debug/libdebug.la \ $(top_builddir)/lib/libmisccontainers.la \ $(top_builddir)/lib/libmiscencoding.la \ $(top_builddir)/lib/libmiscutil.la \ diff --git a/src/Parsing.cc b/src/Parsing.cc index 89396f40ef..8d5dd9c1ac 100644 --- a/src/Parsing.cc +++ b/src/Parsing.cc @@ -12,7 +12,7 @@ #include "cache_cf.h" #include "compat/strtoll.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "Parsing.h" #include "sbuf/Stream.h" diff --git a/src/PeerPoolMgr.cc b/src/PeerPoolMgr.cc index 69970ff7b5..252a259dd2 100644 --- a/src/PeerPoolMgr.cc +++ b/src/PeerPoolMgr.cc @@ -13,7 +13,7 @@ #include "CachePeer.h" #include "comm/Connection.h" #include "comm/ConnOpener.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fd.h" #include "FwdState.h" #include "globals.h" diff --git a/src/Pipeline.cc b/src/Pipeline.cc index a557ff3114..8f7757df03 100644 --- a/src/Pipeline.cc +++ b/src/Pipeline.cc @@ -12,7 +12,7 @@ #include "squid.h" #include "anyp/PortCfg.h" #include "client_side.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/Stream.h" #include "Pipeline.h" diff --git a/src/SquidString.h b/src/SquidString.h index e36cd27295..3637e13a7c 100644 --- a/src/SquidString.h +++ b/src/SquidString.h @@ -12,7 +12,7 @@ #define SQUID_STRING_H #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include diff --git a/src/StoreIOState.cc b/src/StoreIOState.cc index 93f3facf73..c8f6bbab4c 100644 --- a/src/StoreIOState.cc +++ b/src/StoreIOState.cc @@ -9,7 +9,7 @@ /* DEBUG: section 20 Swap Dir base object */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "defines.h" #include "Store.h" #include "StoreIOState.h" diff --git a/src/StoreMetaUnpacker.cc b/src/StoreMetaUnpacker.cc index 4d4ac3f8ae..d26d376c0c 100644 --- a/src/StoreMetaUnpacker.cc +++ b/src/StoreMetaUnpacker.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "defines.h" #include "StoreMeta.h" #include "StoreMetaUnpacker.h" diff --git a/src/WinSvc.cc b/src/WinSvc.cc index bf937d6d64..cfa81e7827 100644 --- a/src/WinSvc.cc +++ b/src/WinSvc.cc @@ -9,7 +9,7 @@ /* Inspired by previous work by Romeo Anghelache & Eric Stern. */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "protos.h" #include "SquidConfig.h" diff --git a/src/XactionInitiator.cc b/src/XactionInitiator.cc index 1805052a99..f46a27ef68 100644 --- a/src/XactionInitiator.cc +++ b/src/XactionInitiator.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "cache_cf.h" -#include "Debug.h" +#include "debug/Stream.h" #include "XactionInitiator.h" #include diff --git a/src/acl/Acl.cc b/src/acl/Acl.cc index a70419a62f..cf4fe3f094 100644 --- a/src/acl/Acl.cc +++ b/src/acl/Acl.cc @@ -16,7 +16,7 @@ #include "anyp/PortCfg.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fatal.h" #include "globals.h" #include "sbuf/List.h" diff --git a/src/acl/AdaptationServiceData.cc b/src/acl/AdaptationServiceData.cc index 0d58a9666c..d42472d396 100644 --- a/src/acl/AdaptationServiceData.cc +++ b/src/acl/AdaptationServiceData.cc @@ -16,7 +16,7 @@ #include "adaptation/ServiceGroups.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" void ACLAdaptationServiceData::parse() diff --git a/src/acl/AnnotationData.cc b/src/acl/AnnotationData.cc index b6ca990318..4cec359ba1 100644 --- a/src/acl/AnnotationData.cc +++ b/src/acl/AnnotationData.cc @@ -12,7 +12,7 @@ #include "acl/Checklist.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "format/Format.h" #include "sbuf/Algorithms.h" diff --git a/src/acl/Arp.cc b/src/acl/Arp.cc index 8e805d7d47..b50f7b2208 100644 --- a/src/acl/Arp.cc +++ b/src/acl/Arp.cc @@ -15,7 +15,7 @@ #include "acl/Arp.h" #include "acl/FilledChecklist.h" #include "cache_cf.h" -#include "Debug.h" +#include "debug/Stream.h" #include "eui/Eui48.h" #include "globals.h" #include "ip/Address.h" diff --git a/src/acl/AtStepData.cc b/src/acl/AtStepData.cc index 61d839331d..34360a5995 100644 --- a/src/acl/AtStepData.cc +++ b/src/acl/AtStepData.cc @@ -12,7 +12,7 @@ #include "base/EnumIterator.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/Stream.h" #include "wordlist.h" diff --git a/src/acl/BoolOps.cc b/src/acl/BoolOps.cc index 48eab6113b..beea26cec1 100644 --- a/src/acl/BoolOps.cc +++ b/src/acl/BoolOps.cc @@ -9,7 +9,7 @@ #include "squid.h" #include "acl/BoolOps.h" #include "acl/Checklist.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/SBuf.h" /* Acl::NotNode */ diff --git a/src/acl/CertificateData.cc b/src/acl/CertificateData.cc index 5f8744520a..b5a55114c9 100644 --- a/src/acl/CertificateData.cc +++ b/src/acl/CertificateData.cc @@ -13,7 +13,7 @@ #include "acl/Checklist.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "wordlist.h" ACLCertificateData::ACLCertificateData(Ssl::GETX509ATTRIBUTE *sslStrategy, const char *attrs, bool optionalAttr) : validAttributesStr(attrs), attributeIsOptional(optionalAttr), attribute (NULL), values (), sslAttributeCall (sslStrategy) diff --git a/src/acl/Checklist.cc b/src/acl/Checklist.cc index c4a7fc2747..739736d719 100644 --- a/src/acl/Checklist.cc +++ b/src/acl/Checklist.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "acl/Checklist.h" #include "acl/Tree.h" -#include "Debug.h" +#include "debug/Stream.h" #include diff --git a/src/acl/ConnMark.cc b/src/acl/ConnMark.cc index 1478ee7f9c..e99699b930 100644 --- a/src/acl/ConnMark.cc +++ b/src/acl/ConnMark.cc @@ -11,8 +11,9 @@ #include "squid.h" #include "acl/ConnMark.h" #include "acl/FilledChecklist.h" +#include "base/IoManip.h" #include "client_side.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/Stream.h" #include "sbuf/Stream.h" diff --git a/src/acl/ConnectionsEncrypted.cc b/src/acl/ConnectionsEncrypted.cc index a1b3ca7465..5df3ae4943 100644 --- a/src/acl/ConnectionsEncrypted.cc +++ b/src/acl/ConnectionsEncrypted.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "acl/ConnectionsEncrypted.h" #include "acl/FilledChecklist.h" -#include "Debug.h" +#include "debug/Stream.h" #include "HttpReply.h" #include "HttpRequest.h" #include "SquidConfig.h" diff --git a/src/acl/DomainData.cc b/src/acl/DomainData.cc index d4b25130f0..90726f6e9d 100644 --- a/src/acl/DomainData.cc +++ b/src/acl/DomainData.cc @@ -14,7 +14,7 @@ #include "anyp/Uri.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "util.h" template diff --git a/src/acl/Eui64.cc b/src/acl/Eui64.cc index d2d3d3d0ec..ebcc22bb6d 100644 --- a/src/acl/Eui64.cc +++ b/src/acl/Eui64.cc @@ -15,7 +15,7 @@ #include "acl/Eui64.h" #include "acl/FilledChecklist.h" #include "cache_cf.h" -#include "Debug.h" +#include "debug/Stream.h" #include "eui/Eui64.h" #include "globals.h" #include "ip/Address.h" diff --git a/src/acl/FilledChecklist.cc b/src/acl/FilledChecklist.cc index 0df725eaf3..234c7ada00 100644 --- a/src/acl/FilledChecklist.cc +++ b/src/acl/FilledChecklist.cc @@ -11,7 +11,7 @@ #include "client_side.h" #include "comm/Connection.h" #include "comm/forward.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "ExternalACLEntry.h" #include "http/Stream.h" #include "HttpReply.h" diff --git a/src/acl/HttpHeaderData.cc b/src/acl/HttpHeaderData.cc index 891173e893..03b1965d7b 100644 --- a/src/acl/HttpHeaderData.cc +++ b/src/acl/HttpHeaderData.cc @@ -16,7 +16,7 @@ #include "base/RegexPattern.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "HttpHeaderTools.h" #include "sbuf/SBuf.h" #include "sbuf/StringConvert.h" diff --git a/src/acl/HttpStatus.cc b/src/acl/HttpStatus.cc index 452fd9d3d3..af4ff3bccb 100644 --- a/src/acl/HttpStatus.cc +++ b/src/acl/HttpStatus.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "acl/FilledChecklist.h" #include "acl/HttpStatus.h" -#include "Debug.h" +#include "debug/Stream.h" #include "HttpReply.h" #include diff --git a/src/acl/InnerNode.cc b/src/acl/InnerNode.cc index 9924db74b7..96352f2ce6 100644 --- a/src/acl/InnerNode.cc +++ b/src/acl/InnerNode.cc @@ -14,7 +14,7 @@ #include "acl/InnerNode.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include diff --git a/src/acl/IntRange.cc b/src/acl/IntRange.cc index ad0849e2a4..819e8fcc0d 100644 --- a/src/acl/IntRange.cc +++ b/src/acl/IntRange.cc @@ -12,7 +12,7 @@ #include "acl/IntRange.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fatal.h" #include "Parsing.h" diff --git a/src/acl/Ip.cc b/src/acl/Ip.cc index a1193140e2..be48ffa6ac 100644 --- a/src/acl/Ip.cc +++ b/src/acl/Ip.cc @@ -13,7 +13,7 @@ #include "acl/Ip.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ip/tools.h" #include "MemBuf.h" #include "wordlist.h" diff --git a/src/acl/MaxConnection.cc b/src/acl/MaxConnection.cc index f57e4eb5a1..891a096f16 100644 --- a/src/acl/MaxConnection.cc +++ b/src/acl/MaxConnection.cc @@ -12,7 +12,7 @@ #include "acl/FilledChecklist.h" #include "acl/MaxConnection.h" #include "client_db.h" -#include "Debug.h" +#include "debug/Stream.h" #include "SquidConfig.h" ACLMaxConnection::ACLMaxConnection (char const *theClass) : class_ (theClass), limit(-1) diff --git a/src/acl/NoteData.cc b/src/acl/NoteData.cc index df8dfc0819..7e2f6cb55a 100644 --- a/src/acl/NoteData.cc +++ b/src/acl/NoteData.cc @@ -12,7 +12,7 @@ #include "acl/NoteData.h" #include "acl/StringData.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/StringConvert.h" #include "wordlist.h" diff --git a/src/acl/Options.cc b/src/acl/Options.cc index b061571626..0650e0da0e 100644 --- a/src/acl/Options.cc +++ b/src/acl/Options.cc @@ -9,7 +9,7 @@ #include "squid.h" #include "acl/Options.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/Stream.h" #include diff --git a/src/acl/ProtocolData.cc b/src/acl/ProtocolData.cc index c1b8fec64c..12ba9c9819 100644 --- a/src/acl/ProtocolData.cc +++ b/src/acl/ProtocolData.cc @@ -12,7 +12,7 @@ #include "acl/Checklist.h" #include "acl/ProtocolData.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "wordlist.h" ACLProtocolData::~ACLProtocolData() diff --git a/src/acl/Random.cc b/src/acl/Random.cc index 5a406e42ef..1cf942fd90 100644 --- a/src/acl/Random.cc +++ b/src/acl/Random.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "acl/FilledChecklist.h" #include "acl/Random.h" -#include "Debug.h" +#include "debug/Stream.h" #include "Parsing.h" #include "wordlist.h" diff --git a/src/acl/RegexData.cc b/src/acl/RegexData.cc index 3978df489e..f4e68926a0 100644 --- a/src/acl/RegexData.cc +++ b/src/acl/RegexData.cc @@ -21,7 +21,7 @@ #include "base/RegexPattern.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/Algorithms.h" #include "sbuf/List.h" #include "sbuf/Stream.h" diff --git a/src/acl/SquidErrorData.cc b/src/acl/SquidErrorData.cc index f74bdf6bb6..aad79c4ea0 100644 --- a/src/acl/SquidErrorData.cc +++ b/src/acl/SquidErrorData.cc @@ -11,7 +11,7 @@ #include "acl/SquidErrorData.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "error/Error.h" #include "fatal.h" #include "wordlist.h" diff --git a/src/acl/StringData.cc b/src/acl/StringData.cc index ae50a8aec3..98521ab055 100644 --- a/src/acl/StringData.cc +++ b/src/acl/StringData.cc @@ -12,7 +12,7 @@ #include "acl/Checklist.h" #include "acl/StringData.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" void ACLStringData::insert(const char *value) diff --git a/src/acl/TimeData.cc b/src/acl/TimeData.cc index a1637c7d44..b259669da0 100644 --- a/src/acl/TimeData.cc +++ b/src/acl/TimeData.cc @@ -13,7 +13,7 @@ #include "acl/TimeData.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "wordlist.h" #define ACL_SUNDAY 0x01 diff --git a/src/acl/TransactionInitiator.cc b/src/acl/TransactionInitiator.cc index f6cf160315..da95bb3004 100644 --- a/src/acl/TransactionInitiator.cc +++ b/src/acl/TransactionInitiator.cc @@ -12,7 +12,7 @@ #include "acl/FilledChecklist.h" #include "acl/TransactionInitiator.h" #include "cache_cf.h" -#include "Debug.h" +#include "debug/Stream.h" #include "HttpRequest.h" #include "MasterXaction.h" #include "SquidConfig.h" diff --git a/src/acl/UserData.cc b/src/acl/UserData.cc index c81474dda6..2a6fc682ae 100644 --- a/src/acl/UserData.cc +++ b/src/acl/UserData.cc @@ -13,7 +13,7 @@ #include "acl/Options.h" #include "acl/UserData.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "sbuf/Algorithms.h" #include "util.h" diff --git a/src/adaptation/AccessRule.cc b/src/adaptation/AccessRule.cc index 6a8fb8a487..4c19b056c9 100644 --- a/src/adaptation/AccessRule.cc +++ b/src/adaptation/AccessRule.cc @@ -13,7 +13,7 @@ #include "adaptation/Service.h" #include "adaptation/ServiceGroups.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" int Adaptation::AccessRule::LastId = 0; diff --git a/src/adaptation/Config.cc b/src/adaptation/Config.cc index 114189ec81..e179f382a4 100644 --- a/src/adaptation/Config.cc +++ b/src/adaptation/Config.cc @@ -16,7 +16,7 @@ #include "adaptation/ServiceGroups.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "globals.h" #include "HttpReply.h" #include "HttpRequest.h" diff --git a/src/adaptation/History.cc b/src/adaptation/History.cc index 228faddfbe..1381cf4a13 100644 --- a/src/adaptation/History.cc +++ b/src/adaptation/History.cc @@ -10,7 +10,7 @@ #include "adaptation/Config.h" #include "adaptation/History.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "SquidTime.h" diff --git a/src/adaptation/ServiceConfig.cc b/src/adaptation/ServiceConfig.cc index 30e09e24d9..ecb6b4e434 100644 --- a/src/adaptation/ServiceConfig.cc +++ b/src/adaptation/ServiceConfig.cc @@ -12,7 +12,7 @@ #include "adaptation/ServiceConfig.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "ip/tools.h" #include diff --git a/src/adaptation/ServiceGroups.cc b/src/adaptation/ServiceGroups.cc index 42ad096898..d92a3a8dec 100644 --- a/src/adaptation/ServiceGroups.cc +++ b/src/adaptation/ServiceGroups.cc @@ -14,7 +14,7 @@ #include "adaptation/ServiceFilter.h" #include "adaptation/ServiceGroups.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "StrList.h" #include "wordlist.h" diff --git a/src/adaptation/ecap/ServiceRep.cc b/src/adaptation/ecap/ServiceRep.cc index c20ab896fe..2ae32c3af0 100644 --- a/src/adaptation/ecap/ServiceRep.cc +++ b/src/adaptation/ecap/ServiceRep.cc @@ -15,7 +15,7 @@ #include "adaptation/ecap/XactionRep.h" #include "AsyncEngine.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "EventLoop.h" #include diff --git a/src/adaptation/icap/Client.cc b/src/adaptation/icap/Client.cc index 8b4684ce64..521773c23d 100644 --- a/src/adaptation/icap/Client.cc +++ b/src/adaptation/icap/Client.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "adaptation/icap/Client.h" -#include "Debug.h" +#include "debug/Stream.h" void Adaptation::Icap::InitModule() { diff --git a/src/adaptation/icap/History.cc b/src/adaptation/icap/History.cc index a88bccb0e0..f70275fd0b 100644 --- a/src/adaptation/icap/History.cc +++ b/src/adaptation/icap/History.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "adaptation/icap/History.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "SquidTime.h" diff --git a/src/adaptation/icap/ServiceRep.cc b/src/adaptation/icap/ServiceRep.cc index 967e6cd768..8ef224dc11 100644 --- a/src/adaptation/icap/ServiceRep.cc +++ b/src/adaptation/icap/ServiceRep.cc @@ -18,7 +18,7 @@ #include "base/TextException.h" #include "comm/Connection.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fde.h" #include "globals.h" #include "HttpReply.h" diff --git a/src/anyp/Uri.cc b/src/anyp/Uri.cc index aa6b9011e1..2c50065fb5 100644 --- a/src/anyp/Uri.cc +++ b/src/anyp/Uri.cc @@ -10,6 +10,7 @@ #include "squid.h" #include "anyp/Uri.h" +#include "base/Raw.h" #include "globals.h" #include "HttpRequest.h" #include "parser/Tokenizer.h" diff --git a/src/auth/AclMaxUserIp.cc b/src/auth/AclMaxUserIp.cc index f2fab8f786..f62da10586 100644 --- a/src/auth/AclMaxUserIp.cc +++ b/src/auth/AclMaxUserIp.cc @@ -14,7 +14,7 @@ #include "auth/AclMaxUserIp.h" #include "auth/UserRequest.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "Parsing.h" #include "wordlist.h" diff --git a/src/auth/CredentialsCache.cc b/src/auth/CredentialsCache.cc index 97efa09c52..f16f7c84cd 100644 --- a/src/auth/CredentialsCache.cc +++ b/src/auth/CredentialsCache.cc @@ -13,7 +13,7 @@ #include "auth/Config.h" #include "auth/CredentialsCache.h" #include "base/RunnersRegistry.h" -#include "Debug.h" +#include "debug/Stream.h" #include "event.h" namespace Auth { diff --git a/src/auth/SchemeConfig.cc b/src/auth/SchemeConfig.cc index 6f1924fc39..ac246a34ce 100644 --- a/src/auth/SchemeConfig.cc +++ b/src/auth/SchemeConfig.cc @@ -15,7 +15,7 @@ #include "auth/UserRequest.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "errorpage.h" #include "format/Format.h" #include "globals.h" diff --git a/src/auth/basic/Scheme.cc b/src/auth/basic/Scheme.cc index 47cde30a85..4c7eb0216b 100644 --- a/src/auth/basic/Scheme.cc +++ b/src/auth/basic/Scheme.cc @@ -9,8 +9,8 @@ #include "squid.h" #include "auth/basic/Config.h" #include "auth/basic/Scheme.h" -#include "Debug.h" -#include "DebugMessages.h" +#include "debug/Messages.h" +#include "debug/Stream.h" #include "helper.h" Auth::Scheme::Pointer Auth::Basic::Scheme::_instance = NULL; diff --git a/src/auth/basic/User.cc b/src/auth/basic/User.cc index 73d0280b46..f5b58d9450 100644 --- a/src/auth/basic/User.cc +++ b/src/auth/basic/User.cc @@ -11,7 +11,7 @@ #include "auth/basic/User.h" #include "auth/Config.h" #include "auth/CredentialsCache.h" -#include "Debug.h" +#include "debug/Stream.h" Auth::Basic::User::User(Auth::SchemeConfig *aConfig, const char *aRequestRealm) : Auth::User(aConfig, aRequestRealm), diff --git a/src/auth/basic/UserRequest.cc b/src/auth/basic/UserRequest.cc index d208619600..a384a3faf6 100644 --- a/src/auth/basic/UserRequest.cc +++ b/src/auth/basic/UserRequest.cc @@ -12,7 +12,7 @@ #include "auth/basic/UserRequest.h" #include "auth/QueueNode.h" #include "auth/State.h" -#include "Debug.h" +#include "debug/Stream.h" #include "format/Format.h" #include "helper.h" #include "helper/Reply.h" diff --git a/src/auth/digest/Scheme.cc b/src/auth/digest/Scheme.cc index ad303d4a71..47cf89e169 100644 --- a/src/auth/digest/Scheme.cc +++ b/src/auth/digest/Scheme.cc @@ -9,8 +9,8 @@ #include "squid.h" #include "auth/digest/Config.h" #include "auth/digest/Scheme.h" -#include "Debug.h" -#include "DebugMessages.h" +#include "debug/Messages.h" +#include "debug/Stream.h" #include "globals.h" #include "helper.h" diff --git a/src/auth/digest/User.cc b/src/auth/digest/User.cc index a0b9157242..fe81674c6b 100644 --- a/src/auth/digest/User.cc +++ b/src/auth/digest/User.cc @@ -11,7 +11,7 @@ #include "auth/CredentialsCache.h" #include "auth/digest/Config.h" #include "auth/digest/User.h" -#include "Debug.h" +#include "debug/Stream.h" #include "dlink.h" Auth::Digest::User::User(Auth::SchemeConfig *aConfig, const char *aRequestRealm) : diff --git a/src/auth/negotiate/Scheme.cc b/src/auth/negotiate/Scheme.cc index d84c58bc08..dbad33065d 100644 --- a/src/auth/negotiate/Scheme.cc +++ b/src/auth/negotiate/Scheme.cc @@ -9,8 +9,8 @@ #include "squid.h" #include "auth/negotiate/Config.h" #include "auth/negotiate/Scheme.h" -#include "Debug.h" -#include "DebugMessages.h" +#include "debug/Messages.h" +#include "debug/Stream.h" #include "helper.h" Auth::Scheme::Pointer Auth::Negotiate::Scheme::_instance = NULL; diff --git a/src/auth/negotiate/User.cc b/src/auth/negotiate/User.cc index f4da71dc53..b29796acc2 100644 --- a/src/auth/negotiate/User.cc +++ b/src/auth/negotiate/User.cc @@ -10,7 +10,7 @@ #include "auth/CredentialsCache.h" #include "auth/negotiate/User.h" #include "auth/SchemeConfig.h" -#include "Debug.h" +#include "debug/Stream.h" Auth::Negotiate::User::User(Auth::SchemeConfig *aConfig, const char *aRequestRealm) : Auth::User(aConfig, aRequestRealm) diff --git a/src/auth/ntlm/Scheme.cc b/src/auth/ntlm/Scheme.cc index ad5f931859..5fac5e1d77 100644 --- a/src/auth/ntlm/Scheme.cc +++ b/src/auth/ntlm/Scheme.cc @@ -9,8 +9,8 @@ #include "squid.h" #include "auth/ntlm/Config.h" #include "auth/ntlm/Scheme.h" -#include "Debug.h" -#include "DebugMessages.h" +#include "debug/Messages.h" +#include "debug/Stream.h" #include "helper.h" Auth::Scheme::Pointer Auth::Ntlm::Scheme::_instance = NULL; diff --git a/src/auth/ntlm/User.cc b/src/auth/ntlm/User.cc index 25db6a8f93..4b63576780 100644 --- a/src/auth/ntlm/User.cc +++ b/src/auth/ntlm/User.cc @@ -10,7 +10,7 @@ #include "auth/CredentialsCache.h" #include "auth/ntlm/User.h" #include "auth/SchemeConfig.h" -#include "Debug.h" +#include "debug/Stream.h" Auth::Ntlm::User::User(Auth::SchemeConfig *aConfig, const char *aRequestRealm) : Auth::User(aConfig, aRequestRealm) diff --git a/src/base/AsyncCall.cc b/src/base/AsyncCall.cc index 41752080f7..2818743dc4 100644 --- a/src/base/AsyncCall.cc +++ b/src/base/AsyncCall.cc @@ -11,7 +11,7 @@ #include "base/AsyncCallQueue.h" #include "base/CodeContext.h" #include "cbdata.h" -#include "Debug.h" +#include "debug/Stream.h" #include InstanceIdDefinitions(AsyncCall, "call"); diff --git a/src/base/AsyncCallQueue.cc b/src/base/AsyncCallQueue.cc index ef6dca425f..fdfb2d8473 100644 --- a/src/base/AsyncCallQueue.cc +++ b/src/base/AsyncCallQueue.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "base/AsyncCall.h" #include "base/AsyncCallQueue.h" -#include "Debug.h" +#include "debug/Stream.h" AsyncCallQueue *AsyncCallQueue::TheInstance = 0; diff --git a/src/base/AsyncJobCalls.h b/src/base/AsyncJobCalls.h index 70fd731ddc..9af31272bf 100644 --- a/src/base/AsyncJobCalls.h +++ b/src/base/AsyncJobCalls.h @@ -11,7 +11,7 @@ #include "base/AsyncJob.h" #include "base/CbcPointer.h" -#include "Debug.h" +#include "debug/Stream.h" /** \ingroup AsyncJobAPI diff --git a/src/base/CbcPointer.h b/src/base/CbcPointer.h index fd4f2e8f7c..3b6b4408b9 100644 --- a/src/base/CbcPointer.h +++ b/src/base/CbcPointer.h @@ -11,7 +11,7 @@ #include "base/TextException.h" #include "cbdata.h" -#include "Debug.h" +#include "debug/Stream.h" /** \ingroup CBDATAAPI diff --git a/src/base/CodeContext.cc b/src/base/CodeContext.cc index 68205c0023..0f885391ba 100644 --- a/src/base/CodeContext.cc +++ b/src/base/CodeContext.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/CodeContext.h" -#include "Debug.h" +#include "debug/Stream.h" /// represents a being-forgotten CodeContext (while it may be being destroyed) class FadingCodeContext: public CodeContext diff --git a/src/base/File.cc b/src/base/File.cc index c2c7ec574b..aaff819182 100644 --- a/src/base/File.cc +++ b/src/base/File.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/File.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/Stream.h" #include "tools.h" #include "xusleep.h" diff --git a/src/base/IoManip.cc b/src/base/IoManip.cc new file mode 100644 index 0000000000..2cfce0f809 --- /dev/null +++ b/src/base/IoManip.cc @@ -0,0 +1,30 @@ +/* + * Copyright (C) 1996-2022 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. + */ + +#include "squid.h" +#include "base/IoManip.h" +#include "debug/Stream.h" + +#include + +void +PrintHex(std::ostream &os, const char * const data, const size_t n) +{ + if (!n) + return; + assert(data); + + const auto savedFill = os.fill('0'); + const auto savedFlags = os.flags(); // std::ios_base::fmtflags + os << std::hex; + std::for_each(data, data + n, + [&os](const char &c) { os << std::setw(2) << static_cast(c); }); + os.flags(savedFlags); + os.fill(savedFill); +} + diff --git a/src/base/IoManip.h b/src/base/IoManip.h new file mode 100644 index 0000000000..7f14953ead --- /dev/null +++ b/src/base/IoManip.h @@ -0,0 +1,73 @@ +/* + * Copyright (C) 1996-2022 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_SRC_BASE_IO_MANIP_H +#define SQUID_SRC_BASE_IO_MANIP_H + +#include +#include + +/// debugs objects pointed by possibly nil pointers: label=object +template +class RawPointerT { +public: + RawPointerT(const char *aLabel, const Pointer &aPtr): + label(aLabel), ptr(aPtr) {} + const char *label; /// the name or description of the being-debugged object + const Pointer &ptr; /// a possibly nil pointer to the being-debugged object +}; + +/// convenience wrapper for creating RawPointerT<> objects +template +inline RawPointerT +RawPointer(const char *label, const Pointer &ptr) +{ + return RawPointerT(label, ptr); +} + +/// prints RawPointerT<>, dereferencing the io_manip pointer if possible +template +inline std::ostream & +operator <<(std::ostream &os, const RawPointerT &pd) +{ + os << pd.label << '='; + if (pd.ptr) + os << *pd.ptr; + else + os << "[nil]"; + return os; +} + +/// std::ostream manipulator to print integers as hex numbers prefixed by 0x +template +class AsHex +{ +public: + explicit AsHex(const Integer n): io_manip(n) {} + Integer io_manip; ///< the integer to print +}; + +template +inline std::ostream & +operator <<(std::ostream &os, const AsHex number) +{ + const auto oldFlags = os.flags(); + os << std::hex << std::showbase << number.io_manip; + os.setf(oldFlags); + return os; +} + +/// a helper to ease AsHex object creation +template +inline AsHex asHex(const Integer n) { return AsHex(n); } + +/// Prints the first n data bytes using hex notation. Does nothing if n is 0. +void PrintHex(std::ostream &, const char *data, size_t n); + +#endif /* SQUID_SRC_BASE_IO_MANIP_H */ + diff --git a/src/base/Makefile.am b/src/base/Makefile.am index b8476c18e1..3dd32c1341 100644 --- a/src/base/Makefile.am +++ b/src/base/Makefile.am @@ -35,6 +35,8 @@ libbase_la_SOURCES = \ Here.h \ InstanceId.cc \ InstanceId.h \ + IoManip.cc \ + IoManip.h \ JobWait.cc \ JobWait.h \ Lock.h \ @@ -43,6 +45,8 @@ libbase_la_SOURCES = \ Packable.h \ PackableStream.h \ Range.h \ + Raw.cc \ + Raw.h \ RefCount.h \ RegexPattern.cc \ RegexPattern.h \ diff --git a/src/base/Raw.cc b/src/base/Raw.cc new file mode 100644 index 0000000000..a1f4fc455a --- /dev/null +++ b/src/base/Raw.cc @@ -0,0 +1,45 @@ +/* + * Copyright (C) 1996-2022 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. + */ + +#include "squid.h" +#include "base/IoManip.h" +#include "base/Raw.h" +#include "debug/Stream.h" + +#include + +std::ostream & +Raw::print(std::ostream &os) const +{ + if (label_) + os << ' ' << label_ << '[' << size_ << ']'; + + if (!size_) + return os; + + // finalize debugging level if no level was set explicitly via minLevel() + const int finalLevel = (level >= 0) ? level : + (size_ > 40 ? DBG_DATA : Debug::SectionLevel()); + if (finalLevel <= Debug::SectionLevel()) { + if (label_) + os << '='; + else if (useGap_) + os << ' '; + if (data_) { + if (useHex_) + PrintHex(os, data_, size_); + else + os.write(data_, size_); + } else { + os << "[null]"; + } + } + + return os; +} + diff --git a/src/base/Raw.h b/src/base/Raw.h new file mode 100644 index 0000000000..8638ddf0d9 --- /dev/null +++ b/src/base/Raw.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 1996-2022 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. + */ + +/* DEBUG: section 00 Debug Routines */ + +#ifndef SQUID_SRC_BASE_RAW_H +#define SQUID_SRC_BASE_RAW_H + +#include + +/// Prints raw and/or non-terminated data safely, efficiently, and beautifully. +/// Allows raw data debugging in debugs() statements with low debugging levels +/// by printing only if higher section debugging levels are configured: +/// debugs(11, DBG_IMPORTANT, "always printed" << Raw(may be printed...)); +class Raw +{ +public: + Raw(const char *label, const char *data, const size_t size): + level(-1), label_(label), data_(data), size_(size), useHex_(false), useGap_(true) {} + + /// limit data printing to at least the given debugging level + Raw &minLevel(const int aLevel) { level = aLevel; return *this; } + + /// print data using two hex digits per byte (decoder: xxd -r -p) + Raw &hex() { useHex_ = true; return *this; } + + Raw &gap(bool useGap = true) { useGap_ = useGap; return *this; } + + /// If debugging is prohibited by the current debugs() or section level, + /// prints nothing. Otherwise, dumps data using one of these formats: + /// " label[size]=data" if label was set and data size is positive + /// " label[0]" if label was set and data size is zero + /// " data" if label was not set and data size is positive + /// "" (i.e., prints nothing) if label was not set and data size is zero + std::ostream &print(std::ostream &os) const; + + /// Minimum section debugging level necessary for printing. By default, + /// small strings are always printed while large strings are only printed + /// if DBG_DATA debugging level is enabled. + int level; + +private: + void printHex(std::ostream &os) const; + + const char *label_; ///< optional data name or ID; triggers size printing + const char *data_; ///< raw data to be printed + size_t size_; ///< data length + bool useHex_; ///< whether hex() has been called + bool useGap_; ///< whether to print leading space if label is missing +}; + +inline std::ostream & +operator <<(std::ostream &os, const Raw &raw) +{ + raw.print(os); + return os; +} + +#endif /* SQUID_SRC_BASE_RAW_H */ + diff --git a/src/base/RegexPattern.cc b/src/base/RegexPattern.cc index 7a6b8037f2..7cdfa91af9 100644 --- a/src/base/RegexPattern.cc +++ b/src/base/RegexPattern.cc @@ -9,7 +9,7 @@ #include "squid.h" #include "base/RegexPattern.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/Stream.h" #include diff --git a/src/base/RunnersRegistry.cc b/src/base/RunnersRegistry.cc index f7a86be5ce..2fa3e863a6 100644 --- a/src/base/RunnersRegistry.cc +++ b/src/base/RunnersRegistry.cc @@ -9,7 +9,7 @@ #include "squid.h" #include "base/RunnersRegistry.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include /// a collection of unique runners, in no particular order diff --git a/src/base/YesNoNone.h b/src/base/YesNoNone.h index 5fb02ab676..995b2ac934 100644 --- a/src/base/YesNoNone.h +++ b/src/base/YesNoNone.h @@ -10,7 +10,7 @@ #define SQUID_YESNONONE_H_ #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" // TODO: generalize / template to non-boolean option types // and make YesNoNone the boolean instance of the template diff --git a/src/base/forward.h b/src/base/forward.h index 7a91102724..4535474049 100644 --- a/src/base/forward.h +++ b/src/base/forward.h @@ -15,6 +15,7 @@ class CallDialer; class CodeContext; class ScopedId; class BadOptionalAccess; +class Raw; class RegexPattern; template class Optional; diff --git a/src/cache_cf.cc b/src/cache_cf.cc index dfc2d82f18..fca5d8140e 100644 --- a/src/cache_cf.cc +++ b/src/cache_cf.cc @@ -28,7 +28,7 @@ #include "ConfigOption.h" #include "ConfigParser.h" #include "CpuAffinityMap.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "DiskIO/DiskIOModule.h" #include "eui/Config.h" #include "ExternalACL.h" diff --git a/src/cache_manager.cc b/src/cache_manager.cc index fe2fb6bbf4..4a2f30b191 100644 --- a/src/cache_manager.cc +++ b/src/cache_manager.cc @@ -13,7 +13,7 @@ #include "base/TextException.h" #include "CacheManager.h" #include "comm/Connection.h" -#include "Debug.h" +#include "debug/Stream.h" #include "error/ExceptionErrorDetail.h" #include "errorpage.h" #include "fde.h" diff --git a/src/client_side.cc b/src/client_side.cc index 1d770b5e7f..f6c04d16a2 100644 --- a/src/client_side.cc +++ b/src/client_side.cc @@ -76,7 +76,7 @@ #include "comm/TcpAcceptor.h" #include "comm/Write.h" #include "CommCalls.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "error/ExceptionErrorDetail.h" #include "errorpage.h" #include "fd.h" diff --git a/src/clients/HttpTunneler.cc b/src/clients/HttpTunneler.cc index a5af5a5d9b..6b3f037832 100644 --- a/src/clients/HttpTunneler.cc +++ b/src/clients/HttpTunneler.cc @@ -7,6 +7,7 @@ */ #include "squid.h" +#include "base/Raw.h" #include "CachePeer.h" #include "clients/HttpTunneler.h" #include "comm/Read.h" diff --git a/src/comm/Read.cc b/src/comm/Read.cc index 75e2c5bad0..910ff6c54a 100644 --- a/src/comm/Read.cc +++ b/src/comm/Read.cc @@ -15,7 +15,7 @@ #include "comm/Read.h" #include "comm_internal.h" #include "CommCalls.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fd.h" #include "fde.h" #include "sbuf/SBuf.h" diff --git a/src/comm/Tcp.cc b/src/comm/Tcp.cc index 9c2e3500ec..12a8180748 100644 --- a/src/comm/Tcp.cc +++ b/src/comm/Tcp.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "comm/Tcp.h" -#include "Debug.h" +#include "debug/Stream.h" #if HAVE_NETINET_TCP_H #include diff --git a/src/debug/Makefile.am b/src/debug/Makefile.am new file mode 100644 index 0000000000..ba9ea72658 --- /dev/null +++ b/src/debug/Makefile.am @@ -0,0 +1,17 @@ +## Copyright (C) 1996-2022 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. +## + +include $(top_srcdir)/src/Common.am +include $(top_srcdir)/src/TestHeaders.am + +noinst_LTLIBRARIES = libdebug.la + +libdebug_la_SOURCES = \ + debug.cc \ + Messages.h \ + Stream.h + diff --git a/src/DebugMessages.h b/src/debug/Messages.h similarity index 99% rename from src/DebugMessages.h rename to src/debug/Messages.h index 914ff7ee2e..02d12ce7fd 100644 --- a/src/DebugMessages.h +++ b/src/debug/Messages.h @@ -11,7 +11,7 @@ #ifndef SQUID_DEBUG_MESSAGES_H #define SQUID_DEBUG_MESSAGES_H -#include "Debug.h" +#include "debug/Stream.h" #include "SquidConfig.h" #include diff --git a/src/Debug.h b/src/debug/Stream.h similarity index 69% rename from src/Debug.h rename to src/debug/Stream.h index 3e51c5d463..fa3bffc007 100644 --- a/src/Debug.h +++ b/src/debug/Stream.h @@ -8,8 +8,8 @@ /* DEBUG: section 00 Debug Routines */ -#ifndef SQUID_DEBUG_H -#define SQUID_DEBUG_H +#ifndef SQUID_SRC_DEBUG_STREAM_H +#define SQUID_SRC_DEBUG_STREAM_H #include "base/Here.h" // XXX should be mem/forward.h once it removes dependencies on typedefs.h @@ -237,108 +237,5 @@ inline std::ostream& operator <<(std::ostream &os, const uint8_t d) /* Legacy debug function definitions */ void _db_rotate_log(void); -/// Prints raw and/or non-terminated data safely, efficiently, and beautifully. -/// Allows raw data debugging in debugs() statements with low debugging levels -/// by printing only if higher section debugging levels are configured: -/// debugs(11, DBG_IMPORTANT, "always printed" << Raw(may be printed...)); -class Raw -{ -public: - Raw(const char *label, const char *data, const size_t size): - level(-1), label_(label), data_(data), size_(size), useHex_(false), useGap_(true) {} - - /// limit data printing to at least the given debugging level - Raw &minLevel(const int aLevel) { level = aLevel; return *this; } - - /// print data using two hex digits per byte (decoder: xxd -r -p) - Raw &hex() { useHex_ = true; return *this; } - - Raw &gap(bool useGap = true) { useGap_ = useGap; return *this; } - - /// If debugging is prohibited by the current debugs() or section level, - /// prints nothing. Otherwise, dumps data using one of these formats: - /// " label[size]=data" if label was set and data size is positive - /// " label[0]" if label was set and data size is zero - /// " data" if label was not set and data size is positive - /// "" (i.e., prints nothing) if label was not set and data size is zero - std::ostream &print(std::ostream &os) const; - - /// Minimum section debugging level necessary for printing. By default, - /// small strings are always printed while large strings are only printed - /// if DBG_DATA debugging level is enabled. - int level; - -private: - void printHex(std::ostream &os) const; - - const char *label_; ///< optional data name or ID; triggers size printing - const char *data_; ///< raw data to be printed - size_t size_; ///< data length - bool useHex_; ///< whether hex() has been called - bool useGap_; ///< whether to print leading space if label is missing -}; - -inline -std::ostream &operator <<(std::ostream &os, const Raw &raw) -{ - return raw.print(os); -} - -/// debugs objects pointed by possibly nil pointers: label=object -template -class RawPointerT { -public: - RawPointerT(const char *aLabel, const Pointer &aPtr): - label(aLabel), ptr(aPtr) {} - const char *label; /// the name or description of the being-debugged object - const Pointer &ptr; /// a possibly nil pointer to the being-debugged object -}; - -/// convenience wrapper for creating RawPointerT<> objects -template -inline RawPointerT -RawPointer(const char *label, const Pointer &ptr) -{ - return RawPointerT(label, ptr); -} - -/// prints RawPointerT<>, dereferencing the raw pointer if possible -template -inline std::ostream & -operator <<(std::ostream &os, const RawPointerT &pd) -{ - os << pd.label << '='; - if (pd.ptr) - return os << *pd.ptr; - else - return os << "[nil]"; -} - -/// std::ostream manipulator to print integers as hex numbers prefixed by 0x -template -class AsHex -{ -public: - explicit AsHex(const Integer n): raw(n) {} - Integer raw; ///< the integer to print -}; - -template -inline std::ostream & -operator <<(std::ostream &os, const AsHex number) -{ - const auto oldFlags = os.flags(); - os << std::hex << std::showbase << number.raw; - os.setf(oldFlags); - return os; -} - -/// a helper to ease AsHex object creation -template -inline AsHex asHex(const Integer n) { return AsHex(n); } - -/// Prints the first n data bytes using hex notation. Does nothing if n is 0. -void PrintHex(std::ostream &, const char *data, size_t n); - -#endif /* SQUID_DEBUG_H */ +#endif /* SQUID_SRC_DEBUG_STREAM_H */ diff --git a/src/debug.cc b/src/debug/debug.cc similarity index 96% rename from src/debug.cc rename to src/debug/debug.cc index eaaf171ca4..178ff299d2 100644 --- a/src/debug.cc +++ b/src/debug/debug.cc @@ -11,8 +11,7 @@ #include "squid.h" #include "base/Optional.h" #include "base/TextException.h" -#include "Debug.h" -#include "DebugMessages.h" +#include "debug/Stream.h" #include "fd.h" #include "ipc/Kids.h" #include "SquidTime.h" @@ -32,7 +31,6 @@ bool Debug::log_syslog = false; int Debug::Levels[MAX_DEBUG_SECTIONS]; char *Debug::cache_log = NULL; int Debug::rotateNumber = -1; -DebugMessages TheDebugMessages; /// a counter related to the number of debugs() calls using DebugRecordCount = uint64_t; @@ -1362,49 +1360,3 @@ ForceAlert(std::ostream& s) return s; } -void -PrintHex(std::ostream &os, const char *data, const size_t n) -{ - if (!n) - return; - assert(data); - - const auto savedFill = os.fill('0'); - const auto savedFlags = os.flags(); // std::ios_base::fmtflags - os << std::hex; - std::for_each(data, data + n, - [&os](const char &c) { os << std::setw(2) << static_cast(c); }); - os.flags(savedFlags); - os.fill(savedFill); -} - -std::ostream & -Raw::print(std::ostream &os) const -{ - if (label_) - os << ' ' << label_ << '[' << size_ << ']'; - - if (!size_) - return os; - - // finalize debugging level if no level was set explicitly via minLevel() - const int finalLevel = (level >= 0) ? level : - (size_ > 40 ? DBG_DATA : Debug::SectionLevel()); - if (finalLevel <= Debug::SectionLevel()) { - if (label_) - os << '='; - else if (useGap_) - os << ' '; - if (data_) { - if (useHex_) - PrintHex(os, data_, size_); - else - os.write(data_, size_); - } else { - os << "[null]"; - } - } - - return os; -} - diff --git a/src/dns_internal.cc b/src/dns_internal.cc index b889759bfb..a36579397b 100644 --- a/src/dns_internal.cc +++ b/src/dns_internal.cc @@ -18,7 +18,7 @@ #include "comm/Loops.h" #include "comm/Read.h" #include "comm/Write.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "dlink.h" #include "dns/forward.h" #include "dns/rfc3596.h" diff --git a/src/error/Error.cc b/src/error/Error.cc index 871613eeba..e0733d7726 100644 --- a/src/error/Error.cc +++ b/src/error/Error.cc @@ -9,7 +9,7 @@ /* DEBUG: section 04 Error Management */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "error/Error.h" void diff --git a/src/esi/Element.h b/src/esi/Element.h index 188371fa67..32dcdfb966 100644 --- a/src/esi/Element.h +++ b/src/esi/Element.h @@ -10,7 +10,7 @@ #define SQUID_ESIELEMENT_H #include "base/RefCount.h" -#include "Debug.h" +#include "debug/Stream.h" #include "esi/Segment.h" #include diff --git a/src/esi/Expression.cc b/src/esi/Expression.cc index 72d849af6a..84fd43c604 100644 --- a/src/esi/Expression.cc +++ b/src/esi/Expression.cc @@ -9,7 +9,7 @@ /* DEBUG: section 86 ESI processing */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "esi/Esi.h" #include "esi/Expression.h" diff --git a/src/esi/Parser.cc b/src/esi/Parser.cc index 773827e449..256c2585e0 100644 --- a/src/esi/Parser.cc +++ b/src/esi/Parser.cc @@ -9,7 +9,7 @@ /* DEBUG: section 86 ESI processing */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "esi/Parser.h" #include "fatal.h" diff --git a/src/esi/Segment.cc b/src/esi/Segment.cc index 7101b573e4..2e20d745a7 100644 --- a/src/esi/Segment.cc +++ b/src/esi/Segment.cc @@ -9,7 +9,7 @@ /* DEBUG: section 86 ESI processing */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "esi/Segment.h" #include "SquidString.h" diff --git a/src/esi/Sequence.cc b/src/esi/Sequence.cc index 74ffa61d40..d5622ab6bf 100644 --- a/src/esi/Sequence.cc +++ b/src/esi/Sequence.cc @@ -9,7 +9,7 @@ /* DEBUG: section 86 ESI processing */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fatal.h" /* MS Visual Studio Projects are monolithic, so we need the following diff --git a/src/eui/Eui48.cc b/src/eui/Eui48.cc index f64e8a69e2..f85b0a44c8 100644 --- a/src/eui/Eui48.cc +++ b/src/eui/Eui48.cc @@ -12,7 +12,7 @@ #if USE_SQUID_EUI -#include "Debug.h" +#include "debug/Stream.h" #include "eui/Eui48.h" #include "globals.h" #include "ip/Address.h" diff --git a/src/eui/Eui64.cc b/src/eui/Eui64.cc index d513af7a0e..f36126fc83 100644 --- a/src/eui/Eui64.cc +++ b/src/eui/Eui64.cc @@ -13,7 +13,7 @@ #if USE_SQUID_EUI #include "compat/eui64_aton.h" -#include "Debug.h" +#include "debug/Stream.h" #include "eui/Eui64.h" #include "globals.h" #include "ip/Address.h" diff --git a/src/fatal.cc b/src/fatal.cc index e95a2d0667..8860d8469e 100644 --- a/src/fatal.cc +++ b/src/fatal.cc @@ -7,7 +7,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fatal.h" #include "globals.h" #include "store/Disks.h" diff --git a/src/fd.cc b/src/fd.cc index 29951854ee..98e0df62c5 100644 --- a/src/fd.cc +++ b/src/fd.cc @@ -10,8 +10,8 @@ #include "squid.h" #include "comm/Loops.h" -#include "Debug.h" -#include "DebugMessages.h" +#include "debug/Messages.h" +#include "debug/Stream.h" #include "fatal.h" #include "fd.h" #include "fde.h" diff --git a/src/fde.cc b/src/fde.cc index dda30ab8cf..32659420b8 100644 --- a/src/fde.cc +++ b/src/fde.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "comm/Read.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fd.h" #include "fde.h" #include "globals.h" diff --git a/src/filemap.cc b/src/filemap.cc index f4f9b1d2ab..5ab51a2279 100644 --- a/src/filemap.cc +++ b/src/filemap.cc @@ -9,7 +9,7 @@ /* DEBUG: section 08 Swap File Bitmap */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "FileMap.h" /* Number of bits in a long */ diff --git a/src/format/Config.cc b/src/format/Config.cc index 5ed3df9eb7..8264067aeb 100644 --- a/src/format/Config.cc +++ b/src/format/Config.cc @@ -9,7 +9,7 @@ #include "squid.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "format/Config.h" #include diff --git a/src/fs/rock/RockHeaderUpdater.cc b/src/fs/rock/RockHeaderUpdater.cc index 5750d3a9f1..c5f03d4d11 100644 --- a/src/fs/rock/RockHeaderUpdater.cc +++ b/src/fs/rock/RockHeaderUpdater.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/AsyncJobCalls.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fs/rock/RockHeaderUpdater.h" #include "fs/rock/RockIoState.h" #include "mime_header.h" diff --git a/src/fs/rock/RockRebuild.cc b/src/fs/rock/RockRebuild.cc index c7c72293e1..5d23c8c515 100644 --- a/src/fs/rock/RockRebuild.cc +++ b/src/fs/rock/RockRebuild.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "base/AsyncJobCalls.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "fs/rock/RockDbCell.h" #include "fs/rock/RockRebuild.h" #include "fs/rock/RockSwapDir.h" diff --git a/src/fs/ufs/UFSSwapLogParser.cc b/src/fs/ufs/UFSSwapLogParser.cc index de866b1f24..b1fc1f5959 100644 --- a/src/fs/ufs/UFSSwapLogParser.cc +++ b/src/fs/ufs/UFSSwapLogParser.cc @@ -7,7 +7,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "md5.h" #include "StoreSwapLogData.h" #include "swap_log_op.h" diff --git a/src/helper.cc b/src/helper.cc index 88efa264f5..8704aecb30 100644 --- a/src/helper.cc +++ b/src/helper.cc @@ -11,11 +11,12 @@ #include "squid.h" #include "base/AsyncCbdataCalls.h" #include "base/Packable.h" +#include "base/Raw.h" #include "comm.h" #include "comm/Connection.h" #include "comm/Read.h" #include "comm/Write.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "fd.h" #include "fde.h" #include "format/Quoting.h" diff --git a/src/helper/ChildConfig.cc b/src/helper/ChildConfig.cc index 2b9f4bd030..be7c5bb4df 100644 --- a/src/helper/ChildConfig.cc +++ b/src/helper/ChildConfig.cc @@ -9,7 +9,7 @@ #include "squid.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "helper/ChildConfig.h" #include "Parsing.h" diff --git a/src/helper/Reply.cc b/src/helper/Reply.cc index b877b2d9ac..a4da56f773 100644 --- a/src/helper/Reply.cc +++ b/src/helper/Reply.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "helper.h" #include "helper/Reply.h" #include "rfc1738.h" diff --git a/src/htcp.cc b/src/htcp.cc index c9d050a52a..4e862316f5 100644 --- a/src/htcp.cc +++ b/src/htcp.cc @@ -18,7 +18,7 @@ #include "comm/Loops.h" #include "comm/UdpOpenDialer.h" #include "compat/xalloc.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "globals.h" #include "htcp.h" #include "http.h" diff --git a/src/http.cc b/src/http.cc index 147056adc0..b5c216a1bc 100644 --- a/src/http.cc +++ b/src/http.cc @@ -16,6 +16,7 @@ #include "squid.h" #include "acl/FilledChecklist.h" #include "base/AsyncJobCalls.h" +#include "base/Raw.h" #include "base/TextException.h" #include "base64.h" #include "CachePeer.h" diff --git a/src/http/ContentLengthInterpreter.cc b/src/http/ContentLengthInterpreter.cc index 076afa8863..09b175ae14 100644 --- a/src/http/ContentLengthInterpreter.cc +++ b/src/http/ContentLengthInterpreter.cc @@ -10,7 +10,8 @@ #include "squid.h" #include "base/CharacterSet.h" -#include "Debug.h" +#include "base/Raw.h" +#include "debug/Stream.h" #include "http/ContentLengthInterpreter.h" #include "http/one/Parser.h" #include "HttpHeaderTools.h" diff --git a/src/http/Message.cc b/src/http/Message.cc index 230a33e743..50e110cabc 100644 --- a/src/http/Message.cc +++ b/src/http/Message.cc @@ -9,7 +9,7 @@ /* DEBUG: section 74 HTTP Message */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/ContentLengthInterpreter.h" #include "http/Message.h" #include "http/one/Parser.h" diff --git a/src/http/StatusCode.cc b/src/http/StatusCode.cc index 2a9bde6019..71bde0343b 100644 --- a/src/http/StatusCode.cc +++ b/src/http/StatusCode.cc @@ -7,7 +7,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/StatusCode.h" const char * diff --git a/src/http/StatusLine.cc b/src/http/StatusLine.cc index 911e4af479..92866b0181 100644 --- a/src/http/StatusLine.cc +++ b/src/http/StatusLine.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "base/Packable.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/one/ResponseParser.h" #include "http/StatusLine.h" #include "parser/forward.h" diff --git a/src/http/one/Parser.cc b/src/http/one/Parser.cc index 8e62de4ee3..7826643b4c 100644 --- a/src/http/one/Parser.cc +++ b/src/http/one/Parser.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/CharacterSet.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/one/Parser.h" #include "mime_header.h" #include "parser/Tokenizer.h" diff --git a/src/http/one/RequestParser.cc b/src/http/one/RequestParser.cc index 3d7798ed21..dc614a4e08 100644 --- a/src/http/one/RequestParser.cc +++ b/src/http/one/RequestParser.cc @@ -7,7 +7,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/one/RequestParser.h" #include "http/ProtocolVersion.h" #include "parser/Tokenizer.h" diff --git a/src/http/one/ResponseParser.cc b/src/http/one/ResponseParser.cc index 8025d210ca..876cd53064 100644 --- a/src/http/one/ResponseParser.cc +++ b/src/http/one/ResponseParser.cc @@ -7,7 +7,8 @@ */ #include "squid.h" -#include "Debug.h" +#include "base/Raw.h" +#include "debug/Stream.h" #include "http/one/ResponseParser.h" #include "http/ProtocolVersion.h" #include "parser/Tokenizer.h" diff --git a/src/http/one/TeChunkedParser.cc b/src/http/one/TeChunkedParser.cc index 132d4d0b8c..a87b8492da 100644 --- a/src/http/one/TeChunkedParser.cc +++ b/src/http/one/TeChunkedParser.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/one/TeChunkedParser.h" #include "http/one/Tokenizer.h" #include "http/ProtocolVersion.h" diff --git a/src/http/one/Tokenizer.cc b/src/http/one/Tokenizer.cc index 0d54c0beaa..6c4562eff0 100644 --- a/src/http/one/Tokenizer.cc +++ b/src/http/one/Tokenizer.cc @@ -7,7 +7,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "http/one/Parser.h" #include "http/one/Tokenizer.h" #include "parser/Tokenizer.h" diff --git a/src/icmp/Icmp.cc b/src/icmp/Icmp.cc index ee36bb4bcc..a7af5596f8 100644 --- a/src/icmp/Icmp.cc +++ b/src/icmp/Icmp.cc @@ -9,7 +9,7 @@ /* DEBUG: section 37 ICMP Routines */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "Icmp.h" #include "SquidTime.h" diff --git a/src/icmp/Icmp4.cc b/src/icmp/Icmp4.cc index d4da232674..68a2a27a5c 100644 --- a/src/icmp/Icmp4.cc +++ b/src/icmp/Icmp4.cc @@ -14,7 +14,7 @@ #if USE_ICMP -#include "Debug.h" +#include "debug/Stream.h" #include "Icmp4.h" #include "IcmpPinger.h" #include "SquidTime.h" diff --git a/src/icmp/Icmp6.cc b/src/icmp/Icmp6.cc index 727d3da1c1..5fce0481c9 100644 --- a/src/icmp/Icmp6.cc +++ b/src/icmp/Icmp6.cc @@ -14,7 +14,7 @@ #if USE_ICMP -#include "Debug.h" +#include "debug/Stream.h" #include "Icmp6.h" #include "IcmpPinger.h" #include "SquidTime.h" diff --git a/src/icmp/IcmpPinger.cc b/src/icmp/IcmpPinger.cc index 259cb7a978..3b0412fbcd 100644 --- a/src/icmp/IcmpPinger.cc +++ b/src/icmp/IcmpPinger.cc @@ -14,7 +14,7 @@ #if USE_ICMP -#include "Debug.h" +#include "debug/Stream.h" #include "Icmp4.h" #include "Icmp6.h" #include "IcmpPinger.h" diff --git a/src/icmp/Makefile.am b/src/icmp/Makefile.am index b38aff12fb..64bdcfd5ab 100644 --- a/src/icmp/Makefile.am +++ b/src/icmp/Makefile.am @@ -36,7 +36,6 @@ libicmp_la_LIBADD= libicmpcore.la # pinger depends on these but install/dist is done elsewhere. COPIED_SOURCE= \ - debug.cc \ globals.cc \ SquidConfig.cc \ tests/stub_fd.cc \ @@ -61,6 +60,7 @@ pinger_LDFLAGS = $(LIBADD_DL) pinger_LDADD=\ libicmpcore.la \ $(top_builddir)/src/ip/libip.la \ + $(top_builddir)/src/debug/libdebug.la \ $(top_builddir)/src/base/libbase.la \ $(COMPAT_LIB) \ $(SSLLIB) \ @@ -83,9 +83,6 @@ CLEANFILES += $(COPIED_SOURCE) ## files we need to pull in from other locations ## copied like this to avoid subdir-objects collisions on 'make clean' -debug.cc: $(top_srcdir)/src/debug.cc - cp $(top_srcdir)/src/debug.cc $@ - globals.cc: $(top_srcdir)/src/globals.h cp $(top_builddir)/src/globals.cc $@ diff --git a/src/icmp/pinger.cc b/src/icmp/pinger.cc index b2fdc682e7..188e8af439 100644 --- a/src/icmp/pinger.cc +++ b/src/icmp/pinger.cc @@ -40,7 +40,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "SquidTime.h" #if USE_ICMP diff --git a/src/ip/Address.cc b/src/ip/Address.cc index 215b72e179..10890306d0 100644 --- a/src/ip/Address.cc +++ b/src/ip/Address.cc @@ -9,7 +9,7 @@ /* DEBUG: section 14 IP Storage and Handling */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ip/Address.h" #include "ip/tools.h" #include "util.h" diff --git a/src/ip/NfMarkConfig.cc b/src/ip/NfMarkConfig.cc index 2c8f8e41b7..d87b2dd0d4 100644 --- a/src/ip/NfMarkConfig.cc +++ b/src/ip/NfMarkConfig.cc @@ -7,7 +7,7 @@ */ #include "squid.h" - +#include "base/IoManip.h" #include "ConfigParser.h" #include "ip/NfMarkConfig.h" #include "parser/Tokenizer.h" diff --git a/src/ip/QosConfig.cc b/src/ip/QosConfig.cc index 7bc7c03c48..91498a4043 100644 --- a/src/ip/QosConfig.cc +++ b/src/ip/QosConfig.cc @@ -8,6 +8,7 @@ #include "squid.h" #include "acl/Gadgets.h" +#include "base/IoManip.h" #include "cache_cf.h" #include "comm/Connection.h" #include "compat/cmsg.h" diff --git a/src/ip/tools.cc b/src/ip/tools.cc index cff35b1475..bd7459420d 100644 --- a/src/ip/tools.cc +++ b/src/ip/tools.cc @@ -9,7 +9,7 @@ /* DEBUG: section 21 Misc Functions */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ip/Address.h" #include "ip/tools.h" diff --git a/src/ipc/FdNotes.cc b/src/ipc/FdNotes.cc index 1288b238f6..349674f50d 100644 --- a/src/ipc/FdNotes.cc +++ b/src/ipc/FdNotes.cc @@ -9,7 +9,7 @@ /* DEBUG: section 54 Interprocess Communication */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ipc/FdNotes.h" const char * diff --git a/src/ipc/MemMap.h b/src/ipc/MemMap.h index 70d161e50b..d29f237886 100644 --- a/src/ipc/MemMap.h +++ b/src/ipc/MemMap.h @@ -9,7 +9,7 @@ #ifndef SQUID_IPC_STORE_MAP_H #define SQUID_IPC_STORE_MAP_H -#include "Debug.h" +#include "debug/Stream.h" #include "ipc/mem/FlexibleArray.h" #include "ipc/mem/Pointer.h" #include "ipc/ReadWriteLock.h" diff --git a/src/ipc/Queue.cc b/src/ipc/Queue.cc index f55ca0cb6b..71f715ff95 100644 --- a/src/ipc/Queue.cc +++ b/src/ipc/Queue.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "ipc/Queue.h" diff --git a/src/ipc/Queue.h b/src/ipc/Queue.h index 379512427f..37a76bf2ac 100644 --- a/src/ipc/Queue.h +++ b/src/ipc/Queue.h @@ -10,7 +10,7 @@ #define SQUID_IPC_QUEUE_H #include "base/InstanceId.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ipc/mem/FlexibleArray.h" #include "ipc/mem/Pointer.h" #include "util.h" diff --git a/src/ipc/RequestId.cc b/src/ipc/RequestId.cc index 76f3ae2abf..b51deb11ee 100644 --- a/src/ipc/RequestId.cc +++ b/src/ipc/RequestId.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ipc/RequestId.h" #include diff --git a/src/ipc/StrandCoord.cc b/src/ipc/StrandCoord.cc index 34f2730a79..dd3622a44d 100644 --- a/src/ipc/StrandCoord.cc +++ b/src/ipc/StrandCoord.cc @@ -9,7 +9,7 @@ /* DEBUG: section 54 Interprocess Communication */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "ipc/Port.h" #include "ipc/StrandCoord.h" diff --git a/src/ipc/mem/PageStack.cc b/src/ipc/mem/PageStack.cc index 3dbc2e6819..e5e5ee1b2a 100644 --- a/src/ipc/mem/PageStack.cc +++ b/src/ipc/mem/PageStack.cc @@ -10,7 +10,7 @@ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ipc/mem/Page.h" #include "ipc/mem/PageStack.h" diff --git a/src/ipc/mem/Segment.cc b/src/ipc/mem/Segment.cc index fc2491e782..bc32c512c1 100644 --- a/src/ipc/mem/Segment.cc +++ b/src/ipc/mem/Segment.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "base/TextException.h" #include "compat/shm.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fatal.h" #include "ipc/mem/Segment.h" #include "sbuf/SBuf.h" diff --git a/src/ipcache.cc b/src/ipcache.cc index ceda458a18..275ec0448f 100644 --- a/src/ipcache.cc +++ b/src/ipcache.cc @@ -11,7 +11,7 @@ #include "squid.h" #include "CacheManager.h" #include "cbdata.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "dlink.h" #include "dns/LookupDetails.h" #include "dns/rfc3596.h" diff --git a/src/log/Config.cc b/src/log/Config.cc index 8e73f57ca1..018a9c30d8 100644 --- a/src/log/Config.cc +++ b/src/log/Config.cc @@ -9,7 +9,7 @@ #include "squid.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" +#include "debug/Stream.h" #include "log/Config.h" Log::LogConfig Log::TheConfig; diff --git a/src/log/File.cc b/src/log/File.cc index 88049f340a..5128c2a3d8 100644 --- a/src/log/File.cc +++ b/src/log/File.cc @@ -9,7 +9,7 @@ /* DEBUG: section 50 Log file handling */ #include "squid.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "fatal.h" #include "fde.h" #include "log/File.h" diff --git a/src/log/FormattedLog.cc b/src/log/FormattedLog.cc index 7b795bbd6c..a48cba6a63 100644 --- a/src/log/FormattedLog.cc +++ b/src/log/FormattedLog.cc @@ -10,7 +10,7 @@ #include "acl/Gadgets.h" #include "base/TextException.h" #include "cache_cf.h" -#include "Debug.h" +#include "debug/Stream.h" #include "log/Config.h" #include "log/File.h" #include "log/FormattedLog.h" diff --git a/src/log/ModSyslog.cc b/src/log/ModSyslog.cc index 0c7ef8f25c..53106d983b 100644 --- a/src/log/ModSyslog.cc +++ b/src/log/ModSyslog.cc @@ -9,7 +9,7 @@ /* DEBUG: section 50 Log file handling */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #if HAVE_SYSLOG diff --git a/src/main.cc b/src/main.cc index b5fcdb72e7..61f0df41a2 100644 --- a/src/main.cc +++ b/src/main.cc @@ -29,7 +29,7 @@ #include "CommandLine.h" #include "ConfigParser.h" #include "CpuAffinity.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "DiskIO/DiskIOModule.h" #include "dns/forward.h" #include "errorpage.h" diff --git a/src/mgr/IntParam.cc b/src/mgr/IntParam.cc index 04a6c32149..52d6209dc4 100644 --- a/src/mgr/IntParam.cc +++ b/src/mgr/IntParam.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ipc/TypedMsgHdr.h" #include "mgr/IntParam.h" diff --git a/src/mime.cc b/src/mime.cc index edf94b975c..83da9fba00 100644 --- a/src/mime.cc +++ b/src/mime.cc @@ -9,7 +9,7 @@ /* DEBUG: section 25 MIME Parsing and Internal Icons */ #include "squid.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "fde.h" #include "fs_io.h" #include "globals.h" diff --git a/src/mime_header.cc b/src/mime_header.cc index cb198a42d0..0fb4e9cea7 100644 --- a/src/mime_header.cc +++ b/src/mime_header.cc @@ -9,7 +9,7 @@ /* DEBUG: section 25 MiME Header Parsing */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "mime_header.h" #include "sbuf/SBuf.h" diff --git a/src/multicast.cc b/src/multicast.cc index 6046b1be01..3977e236b9 100644 --- a/src/multicast.cc +++ b/src/multicast.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "comm/Connection.h" -#include "Debug.h" +#include "debug/Stream.h" // XXX: for icpIncomingConn - need to pass it as a generic parameter. #include "ICP.h" #include "ipcache.h" diff --git a/src/neighbors.cc b/src/neighbors.cc index cd0875cff0..57af67da96 100644 --- a/src/neighbors.cc +++ b/src/neighbors.cc @@ -16,7 +16,7 @@ #include "CachePeer.h" #include "comm/Connection.h" #include "comm/ConnOpener.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "event.h" #include "FwdState.h" #include "globals.h" diff --git a/src/parser/BinaryTokenizer.cc b/src/parser/BinaryTokenizer.cc index 66bd1b72b8..71f15cd954 100644 --- a/src/parser/BinaryTokenizer.cc +++ b/src/parser/BinaryTokenizer.cc @@ -9,6 +9,7 @@ /* DEBUG: section 24 SBuf */ #include "squid.h" +#include "base/Raw.h" #include "ip/Address.h" #include "parser/BinaryTokenizer.h" diff --git a/src/parser/Tokenizer.cc b/src/parser/Tokenizer.cc index a8a9407783..9706a7504e 100644 --- a/src/parser/Tokenizer.cc +++ b/src/parser/Tokenizer.cc @@ -9,7 +9,7 @@ /* DEBUG: section 24 SBuf */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "parser/forward.h" #include "parser/Tokenizer.h" #include "sbuf/Stream.h" diff --git a/src/peer_proxy_negotiate_auth.cc b/src/peer_proxy_negotiate_auth.cc index 8544771ef3..77dc87a79f 100644 --- a/src/peer_proxy_negotiate_auth.cc +++ b/src/peer_proxy_negotiate_auth.cc @@ -19,7 +19,7 @@ #endif #include "base64.h" -#include "Debug.h" +#include "debug/Stream.h" #include "peer_proxy_negotiate_auth.h" #ifdef __cplusplus diff --git a/src/sbuf/MemBlob.cc b/src/sbuf/MemBlob.cc index f9dae0992e..7993f476da 100644 --- a/src/sbuf/MemBlob.cc +++ b/src/sbuf/MemBlob.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/DetailedStats.h" #include "sbuf/MemBlob.h" diff --git a/src/sbuf/SBuf.cc b/src/sbuf/SBuf.cc index 4f1b438ddf..af044c9ca0 100644 --- a/src/sbuf/SBuf.cc +++ b/src/sbuf/SBuf.cc @@ -8,8 +8,9 @@ #include "squid.h" #include "base/CharacterSet.h" +#include "base/Raw.h" #include "base/RefCount.h" -#include "Debug.h" +#include "debug/Stream.h" #include "sbuf/DetailedStats.h" #include "sbuf/SBuf.h" #include "util.h" diff --git a/src/sbuf/SBuf.h b/src/sbuf/SBuf.h index d02f29cfc0..7373120b3d 100644 --- a/src/sbuf/SBuf.h +++ b/src/sbuf/SBuf.h @@ -13,7 +13,7 @@ #include "base/InstanceId.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "sbuf/forward.h" #include "sbuf/MemBlob.h" diff --git a/src/security/CommunicationSecrets.cc b/src/security/CommunicationSecrets.cc index c6f02eb245..b032a9a0ca 100644 --- a/src/security/CommunicationSecrets.cc +++ b/src/security/CommunicationSecrets.cc @@ -8,6 +8,7 @@ #include "squid.h" #include "base/CharacterSet.h" +#include "base/IoManip.h" #include "security/CommunicationSecrets.h" #include "security/Session.h" diff --git a/src/security/ErrorDetail.cc b/src/security/ErrorDetail.cc index 8c10408dbd..129c4a41d0 100644 --- a/src/security/ErrorDetail.cc +++ b/src/security/ErrorDetail.cc @@ -7,6 +7,7 @@ */ #include "squid.h" +#include "base/IoManip.h" #include "error/SysErrorDetail.h" #include "html_quote.h" #include "sbuf/SBuf.h" diff --git a/src/security/Handshake.cc b/src/security/Handshake.cc index dbf0544c76..fd59d43939 100644 --- a/src/security/Handshake.cc +++ b/src/security/Handshake.cc @@ -9,6 +9,7 @@ /* DEBUG: section 83 SSL-Bump Server/Peer negotiation */ #include "squid.h" +#include "base/IoManip.h" #include "sbuf/Stream.h" #include "security/Handshake.h" #if USE_OPENSSL diff --git a/src/security/Io.cc b/src/security/Io.cc index f8f2745e38..7ea81dffec 100644 --- a/src/security/Io.cc +++ b/src/security/Io.cc @@ -9,6 +9,7 @@ /* DEBUG: section 83 TLS I/O */ #include "squid.h" +#include "base/IoManip.h" #include "fde.h" #include "security/Io.h" diff --git a/src/security/PeerConnector.cc b/src/security/PeerConnector.cc index 51523b9b8f..7e96485fc7 100644 --- a/src/security/PeerConnector.cc +++ b/src/security/PeerConnector.cc @@ -10,6 +10,7 @@ #include "squid.h" #include "acl/FilledChecklist.h" +#include "base/IoManip.h" #include "comm/Loops.h" #include "comm/Read.h" #include "Downloader.h" diff --git a/src/security/PeerOptions.cc b/src/security/PeerOptions.cc index 3c290b3244..eb82e9c9ce 100644 --- a/src/security/PeerOptions.cc +++ b/src/security/PeerOptions.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "base/Packable.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fatal.h" #include "globals.h" #include "parser/Tokenizer.h" diff --git a/src/security/Session.cc b/src/security/Session.cc index 5aaff22690..092528d43e 100644 --- a/src/security/Session.cc +++ b/src/security/Session.cc @@ -12,7 +12,7 @@ #include "anyp/PortCfg.h" #include "base/RunnersRegistry.h" #include "CachePeer.h" -#include "Debug.h" +#include "debug/Stream.h" #include "fd.h" #include "fde.h" #include "ipc/MemMap.h" diff --git a/src/servers/FtpServer.cc b/src/servers/FtpServer.cc index d22148c5a0..472b8b242d 100644 --- a/src/servers/FtpServer.cc +++ b/src/servers/FtpServer.cc @@ -11,6 +11,7 @@ #include "squid.h" #include "acl/FilledChecklist.h" #include "base/CharacterSet.h" +#include "base/Raw.h" #include "base/RefCount.h" #include "base/Subscription.h" #include "client_side_reply.h" diff --git a/src/servers/Server.cc b/src/servers/Server.cc index fec88dfaa4..5753c63f2f 100644 --- a/src/servers/Server.cc +++ b/src/servers/Server.cc @@ -11,7 +11,7 @@ #include "client_side.h" #include "comm.h" #include "comm/Read.h" -#include "Debug.h" +#include "debug/Stream.h" #include "error/SysErrorDetail.h" #include "fd.h" #include "fde.h" diff --git a/src/snmp/Var.cc b/src/snmp/Var.cc index f0f54e7bde..4523090076 100644 --- a/src/snmp/Var.cc +++ b/src/snmp/Var.cc @@ -10,7 +10,7 @@ #include "squid.h" #include "base/TextException.h" -#include "Debug.h" +#include "debug/Stream.h" #include "ipc/TypedMsgHdr.h" #include "snmp/Var.h" #include "tools.h" diff --git a/src/ssl/ErrorDetailManager.cc b/src/ssl/ErrorDetailManager.cc index 44a605e9e5..04da3f02de 100644 --- a/src/ssl/ErrorDetailManager.cc +++ b/src/ssl/ErrorDetailManager.cc @@ -7,6 +7,7 @@ */ #include "squid.h" +#include "base/Raw.h" #include "ErrorDetail.h" #include "ErrorDetailManager.h" #include "errorpage.h" diff --git a/src/ssl/bio.cc b/src/ssl/bio.cc index 55de1fc929..f38e0cd380 100644 --- a/src/ssl/bio.cc +++ b/src/ssl/bio.cc @@ -14,6 +14,7 @@ /* support.cc says this is needed */ #if USE_OPENSSL +#include "base/Raw.h" #include "comm.h" #include "fd.h" #include "fde.h" diff --git a/src/store.cc b/src/store.cc index 164e18faf4..013083ed5f 100644 --- a/src/store.cc +++ b/src/store.cc @@ -17,7 +17,7 @@ #include "CollapsedForwarding.h" #include "comm/Connection.h" #include "comm/Read.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #if HAVE_DISKIO_MODULE_IPCIO #include "DiskIO/IpcIo/IpcIoFile.h" #endif diff --git a/src/store/Disks.cc b/src/store/Disks.cc index d9eeb10213..49d3256b16 100644 --- a/src/store/Disks.cc +++ b/src/store/Disks.cc @@ -11,8 +11,8 @@ #include "squid.h" #include "cache_cf.h" #include "ConfigParser.h" -#include "Debug.h" -#include "DebugMessages.h" +#include "debug/Messages.h" +#include "debug/Stream.h" #include "globals.h" #include "sbuf/Stream.h" #include "SquidConfig.h" diff --git a/src/store/LocalSearch.cc b/src/store/LocalSearch.cc index 18620248c5..d65b3c25e3 100644 --- a/src/store/LocalSearch.cc +++ b/src/store/LocalSearch.cc @@ -9,7 +9,7 @@ /* DEBUG: section 47 Store Search */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "globals.h" #include "store/LocalSearch.h" #include "StoreSearch.h" diff --git a/src/store_digest.cc b/src/store_digest.cc index d6e5a3f8b3..7be186d57d 100644 --- a/src/store_digest.cc +++ b/src/store_digest.cc @@ -15,7 +15,7 @@ */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" #include "event.h" #include "globals.h" #include "mgr/Registration.h" diff --git a/src/store_log.cc b/src/store_log.cc index 2357c8abf1..02f53ef9f4 100644 --- a/src/store_log.cc +++ b/src/store_log.cc @@ -9,7 +9,7 @@ /* DEBUG: section 20 Storage Manager Logging Functions */ #include "squid.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "format/Token.h" #include "HttpReply.h" #include "log/File.h" diff --git a/src/store_rebuild.cc b/src/store_rebuild.cc index c994c57a06..d111350666 100644 --- a/src/store_rebuild.cc +++ b/src/store_rebuild.cc @@ -9,7 +9,7 @@ /* DEBUG: section 20 Store Rebuild Routines */ #include "squid.h" -#include "DebugMessages.h" +#include "debug/Messages.h" #include "event.h" #include "globals.h" #include "md5.h" diff --git a/src/tests/stub_cache_manager.cc b/src/tests/stub_cache_manager.cc index 2fab12a18c..669d8be7ac 100644 --- a/src/tests/stub_cache_manager.cc +++ b/src/tests/stub_cache_manager.cc @@ -8,7 +8,7 @@ #include "squid.h" #include "CacheManager.h" -#include "Debug.h" +#include "debug/Stream.h" #include "mgr/Registration.h" #define STUB_API "cache_manager.cc" diff --git a/src/tests/stub_debug.cc b/src/tests/stub_debug.cc index 55f9a0ffdf..3180639c88 100644 --- a/src/tests/stub_debug.cc +++ b/src/tests/stub_debug.cc @@ -14,9 +14,9 @@ * not abort the unit test. */ #include "squid.h" -#include "Debug.h" +#include "debug/Stream.h" -#define STUB_API "debug.cc" +#define STUB_API "debug/libdebug.la" #include "tests/STUB.h" char *Debug::debugOptions; @@ -96,26 +96,3 @@ ForceAlert(std::ostream& s) return s; } -std::ostream & -Raw::print(std::ostream &os) const -{ - if (label_) - os << ' ' << label_ << '[' << size_ << ']'; - - if (!size_) - return os; - - // finalize debugging level if no level was set explicitly via minLevel() - const int finalLevel = (level >= 0) ? level : - (size_ > 40 ? DBG_DATA : Debug::SectionLevel()); - if (finalLevel <= Debug::SectionLevel()) { - os << (label_ ? '=' : ' '); - if (data_) - os.write(data_, size_); - else - os << "[null]"; - } - - return os; -} - diff --git a/src/tests/testHttp1Parser.cc b/src/tests/testHttp1Parser.cc index aba57e5408..887b63280a 100644 --- a/src/tests/testHttp1Parser.cc +++ b/src/tests/testHttp1Parser.cc @@ -13,7 +13,7 @@ #define private public #define protected public -#include "Debug.h" +#include "debug/Stream.h" #include "http/one/RequestParser.h" #include "http/RequestMethod.h" #include "MemBuf.h" diff --git a/src/tests/testURL.cc b/src/tests/testURL.cc index 6589b5f219..902170f7ce 100644 --- a/src/tests/testURL.cc +++ b/src/tests/testURL.cc @@ -11,7 +11,7 @@ #include #include "anyp/Uri.h" -#include "Debug.h" +#include "debug/Stream.h" #include "tests/testURL.h" #include "unitTestMain.h" diff --git a/src/tunnel.cc b/src/tunnel.cc index 82529a726f..0bcae01152 100644 --- a/src/tunnel.cc +++ b/src/tunnel.cc @@ -12,6 +12,7 @@ #include "acl/FilledChecklist.h" #include "base/CbcPointer.h" #include "base/JobWait.h" +#include "base/Raw.h" #include "CachePeer.h" #include "cbdata.h" #include "client_side.h" diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am index e0735b0a3b..2076a856e1 100644 --- a/test-suite/Makefile.am +++ b/test-suite/Makefile.am @@ -34,7 +34,7 @@ else endif ## Sort by dependencies - test lowest layers first -TESTS += debug \ +TESTS += \ syntheticoperators \ VirtualDeleteOperator \ splay\ @@ -44,7 +44,7 @@ TESTS += debug \ squid-conf-tests ## Sort by alpha - any build failures are significant. -check_PROGRAMS += debug \ +check_PROGRAMS += \ $(ESI_TESTS) \ mem_node_test\ mem_hdr_test \ @@ -59,11 +59,11 @@ tcp_banger2_LDADD = $(top_builddir)/lib/libmiscutil.la # several tests whose purpose is testing libmem itself. STUBS = \ stub_cbdata.cc \ - stub_debug.cc \ stub_MemBuf.cc \ stub_SBuf.cc \ stub_tools.cc \ stub_fatal.cc \ + stub_fd.cc \ STUB.h DEBUG_SOURCE = test_tools.cc $(STUBS) CLEANFILES += $(STUBS) stub_libmem.cc @@ -71,9 +71,6 @@ CLEANFILES += $(STUBS) stub_libmem.cc stub_cbdata.cc: $(top_srcdir)/src/tests/stub_cbdata.cc cp $(top_srcdir)/src/tests/stub_cbdata.cc $@ -stub_debug.cc: $(top_srcdir)/src/tests/stub_debug.cc - cp $(top_srcdir)/src/tests/stub_debug.cc $@ - stub_MemBuf.cc: $(top_srcdir)/src/tests/stub_MemBuf.cc cp $(top_srcdir)/src/tests/stub_MemBuf.cc $@ @@ -86,25 +83,21 @@ stub_tools.cc: $(top_srcdir)/src/tests/stub_tools.cc stub_fatal.cc: $(top_srcdir)/src/tests/stub_fatal.cc cp $(top_srcdir)/src/tests/stub_fatal.cc $@ +stub_fd.cc: $(top_srcdir)/src/tests/stub_fd.cc + cp $(top_srcdir)/src/tests/stub_fd.cc $@ + stub_libmem.cc: $(top_srcdir)/src/tests/stub_libmem.cc STUB.h cp $(top_srcdir)/src/tests/stub_libmem.cc $@ STUB.h: $(top_srcdir)/src/tests/STUB.h cp $(top_srcdir)/src/tests/STUB.h $@ -## XXX: somewhat broken. Its meant to test our debugs() implementation. -## but it has never been linked to the actual src/debug.cc implementation !! -## all it tests are the stream operators and macro in src/Debug.h -debug_SOURCES = \ - $(DEBUG_SOURCE) \ - debug.cc \ - stub_libmem.cc - ESIExpressions_SOURCES = \ $(DEBUG_SOURCE) \ ESIExpressions.cc \ stub_libmem.cc ESIExpressions_LDADD = $(top_builddir)/src/esi/Expression.o \ + $(top_builddir)/src/debug/libdebug.la \ $(LDADD) mem_node_test_SOURCES = \ @@ -113,6 +106,7 @@ mem_node_test_SOURCES = \ mem_node_test_LDADD = \ $(top_builddir)/src/mem_node.o \ $(top_builddir)/src/mem/libmem.la \ + $(top_builddir)/src/debug/libdebug.la \ $(LDADD) mem_hdr_test_SOURCES = \ @@ -122,6 +116,7 @@ mem_hdr_test_LDADD = \ $(top_builddir)/src/stmem.o \ $(top_builddir)/src/mem_node.o \ $(top_builddir)/src/mem/libmem.la \ + $(top_builddir)/src/debug/libdebug.la \ $(LDADD) splay_SOURCES = \ diff --git a/test-suite/debug.cc b/test-suite/debug.cc deleted file mode 100644 index 44435ed9ee..0000000000 --- a/test-suite/debug.cc +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 1996-2022 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. - */ - -/* DEBUG: section 19 Store Memory Primitives */ - -#include "squid.h" -#include "Debug.h" -#include "mem_node.h" -#include "stmem.h" - -class StreamTest -{ -public: - std::ostream &serialise(std::ostream &); - int getAnInt() const; - char const *getACString() const; -}; - -static std::ostream & -operator << (std::ostream &aStream, StreamTest &anObject) -{ - return anObject.serialise(aStream); -} - -std::ostream& -StreamTest::serialise(std::ostream &aStream) -{ - aStream << "stream test"; - return aStream; -} - -int -StreamTest::getAnInt() const -{ - return 5; -} - -char const * -StreamTest::getACString() const -{ - return "ThisIsAStreamTest"; -} - -int -main(int, char *[]) -{ - Debug::Levels[1] = 8; - debugs (1,1,"test" << "string"); - debugs (1,9,"do not show this" << "string"); - debugs (1,1,"test" << "string"); - debugs (1,1,"test" << "string"); - if (true) - debugs(1,9,"this won't compile if the macro is broken."); - else - debugs(1, DBG_IMPORTANT,"bar"); - StreamTest aStreamObject; - StreamTest *streamPointer (&aStreamObject); - debugs(1, DBG_IMPORTANT,aStreamObject); - debugs(1, DBG_IMPORTANT,streamPointer->getAnInt() << " " << aStreamObject.getACString()); - return EXIT_SUCCESS; -} - diff --git a/test-suite/test_tools.cc b/test-suite/test_tools.cc index de1075e01b..d03edc4497 100644 --- a/test-suite/test_tools.cc +++ b/test-suite/test_tools.cc @@ -11,14 +11,6 @@ #include "squid.h" #include "dlink.h" -#include - -void -xassert(const char *msg, const char *file, int line) -{ - std::cout << "Assertion failed: (" << msg << ") at " << file << ":" << line << std::endl; - exit (1); -} void dlinkAdd(void *data, dlink_node * m, dlink_list * list)