From: Joshua Rogers Date: Sun, 18 Apr 2021 15:06:12 +0000 (+0000) Subject: Fix a few level-2+ debugs(); improve ErrorState debugging (#804) X-Git-Tag: 4.15-20210522-snapshot~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ec92ef018e91cf93a4a683c6ec55b8e616216b2;p=thirdparty%2Fsquid.git Fix a few level-2+ debugs(); improve ErrorState debugging (#804) When possible, report object contents rather than its memory address. --- diff --git a/src/HttpHdrRange.cc b/src/HttpHdrRange.cc index 273f700370..80fe703920 100644 --- a/src/HttpHdrRange.cc +++ b/src/HttpHdrRange.cc @@ -226,7 +226,7 @@ HttpHdrRange::parseInit(const String * range_spec) int ilen; assert(range_spec); ++ParsedCount; - debugs(64, 8, "parsing range field: '" << range_spec << "'"); + debugs(64, 8, "parsing range field: '" << *range_spec << "'"); /* check range type */ if (range_spec->caseCmp("bytes=", 6)) @@ -247,7 +247,7 @@ HttpHdrRange::parseInit(const String * range_spec) delete specs.back(); specs.pop_back(); } - debugs(64, 2, "ignoring invalid range field: '" << range_spec << "'"); + debugs(64, 2, "ignoring invalid range field: '" << *range_spec << "'"); break; } diff --git a/src/HttpHdrSc.cc b/src/HttpHdrSc.cc index b07c73f64a..d0adfe32c3 100644 --- a/src/HttpHdrSc.cc +++ b/src/HttpHdrSc.cc @@ -108,7 +108,7 @@ HttpHdrSc::parse(const String * str) type = scLookupTable.lookup(SBuf(item,ilen)); if (type == SC_ENUM_END) { - debugs(90, 2, "hdr sc: unknown control-directive: near '" << item << "' in '" << str << "'"); + debugs(90, 2, "unknown control-directive near '" << item << "' in '" << *str << "'"); type = SC_OTHER; } @@ -134,7 +134,7 @@ HttpHdrSc::parse(const String * str) if (sct->isSet(type)) { if (type != SC_OTHER) - debugs(90, 2, "hdr sc: ignoring duplicate control-directive: near '" << item << "' in '" << str << "'"); + debugs(90, 2, "ignoring duplicate control-directive near '" << item << "' in '" << *str << "'"); ++ scHeaderStats[type].repCount; diff --git a/src/errorpage.cc b/src/errorpage.cc index 50706788e9..b360cc811c 100644 --- a/src/errorpage.cc +++ b/src/errorpage.cc @@ -717,9 +717,7 @@ errorAppendEntry(StoreEntry * entry, ErrorState * err) { assert(entry->mem_obj != NULL); assert (entry->isEmpty()); - debugs(4, 4, "Creating an error page for entry " << entry << - " with errorstate " << err << - " page id " << err->page_id); + debugs(4, 4, "storing " << err << " in " << *entry); if (entry->store_status != STORE_PENDING) { debugs(4, 2, "Skipping error page due to store_status: " << entry->store_status); @@ -1388,7 +1386,7 @@ ErrorState::buildBody() if (!Config.errorDirectory) err_language = Config.errorDefaultLanguage; #endif - debugs(4, 2, "No existing error page language negotiated for " << errorPageName(page_id) << ". Using default error file."); + debugs(4, 2, "No existing error page language negotiated for " << this << ". Using default error file."); return compileBody(error_text[page_id], true); } @@ -1523,3 +1521,13 @@ ErrorPage::ValidateStaticError(const int page_id, const SBuf &inputLocation) anErr.validate(); } +std::ostream & +operator <<(std::ostream &os, const ErrorState *err) +{ + if (err) + os << errorPageName(err->page_id); + else + os << "[none]"; + return os; +} + diff --git a/src/errorpage.h b/src/errorpage.h index 18c3dfa4c6..fc37db545f 100644 --- a/src/errorpage.h +++ b/src/errorpage.h @@ -351,5 +351,7 @@ protected: */ bool strHdrAcptLangGetItem(const String &hdr, char *lang, int langLen, size_t &pos); +std::ostream &operator <<(std::ostream &, const ErrorState *); + #endif /* SQUID_ERRORPAGE_H */ diff --git a/src/tests/stub_errorpage.cc b/src/tests/stub_errorpage.cc index 3c0660d951..5561d63030 100644 --- a/src/tests/stub_errorpage.cc +++ b/src/tests/stub_errorpage.cc @@ -19,3 +19,5 @@ void TemplateFile::loadDefault() STUB TemplateFile::TemplateFile(char const*, err_type) STUB bool TemplateFile::loadFor(const HttpRequest *) STUB_RETVAL(false) +std::ostream &operator <<(std::ostream &os, const ErrorState *) STUB_RETVAL(os) +