/Users/eugenesiegel/btc/bitcoin/src/logging.h
| Line | Count | Source (jump to first uncovered line) | 
| 1 |  | // Copyright (c) 2009-2010 Satoshi Nakamoto | 
| 2 |  | // Copyright (c) 2009-present The Bitcoin Core developers | 
| 3 |  | // Distributed under the MIT software license, see the accompanying | 
| 4 |  | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | 
| 5 |  |  | 
| 6 |  | #ifndef BITCOIN_LOGGING_H | 
| 7 |  | #define BITCOIN_LOGGING_H | 
| 8 |  |  | 
| 9 |  | #include <crypto/siphash.h> | 
| 10 |  | #include <threadsafety.h> | 
| 11 |  | #include <tinyformat.h> | 
| 12 |  | #include <util/fs.h> | 
| 13 |  | #include <util/string.h> | 
| 14 |  | #include <util/time.h> | 
| 15 |  |  | 
| 16 |  | #include <atomic> | 
| 17 |  | #include <cstdint> | 
| 18 |  | #include <cstring> | 
| 19 |  | #include <functional> | 
| 20 |  | #include <list> | 
| 21 |  | #include <memory> | 
| 22 |  | #include <mutex> | 
| 23 |  | #include <source_location> | 
| 24 |  | #include <string> | 
| 25 |  | #include <unordered_map> | 
| 26 |  | #include <unordered_set> | 
| 27 |  | #include <vector> | 
| 28 |  |  | 
| 29 |  | static const bool DEFAULT_LOGTIMEMICROS = false; | 
| 30 |  | static const bool DEFAULT_LOGIPS        = false; | 
| 31 |  | static const bool DEFAULT_LOGTIMESTAMPS = true; | 
| 32 |  | static const bool DEFAULT_LOGTHREADNAMES = false; | 
| 33 |  | static const bool DEFAULT_LOGSOURCELOCATIONS = false; | 
| 34 |  | static constexpr bool DEFAULT_LOGLEVELALWAYS = false; | 
| 35 |  | extern const char * const DEFAULT_DEBUGLOGFILE; | 
| 36 |  |  | 
| 37 |  | extern bool fLogIPs; | 
| 38 |  |  | 
| 39 |  | struct SourceLocationEqual { | 
| 40 |  |     bool operator()(const std::source_location& lhs, const std::source_location& rhs) const noexcept | 
| 41 | 0 |     { | 
| 42 | 0 |         return lhs.line() == rhs.line() && std::string_view(lhs.file_name()) == std::string_view(rhs.file_name()); | 
| 43 | 0 |     } | 
| 44 |  | }; | 
| 45 |  |  | 
| 46 |  | struct SourceLocationHasher { | 
| 47 |  |     size_t operator()(const std::source_location& s) const noexcept | 
| 48 | 0 |     { | 
| 49 |  |         // Use CSipHasher(0, 0) as a simple way to get uniform distribution. | 
| 50 | 0 |         return size_t(CSipHasher(0, 0) | 
| 51 | 0 |                       .Write(s.line()) | 
| 52 | 0 |                       .Write(MakeUCharSpan(std::string_view{s.file_name()})) | 
| 53 | 0 |                       .Finalize()); | 
| 54 | 0 |     } | 
| 55 |  | }; | 
| 56 |  |  | 
| 57 |  | struct LogCategory { | 
| 58 |  |     std::string category; | 
| 59 |  |     bool active; | 
| 60 |  | }; | 
| 61 |  |  | 
| 62 |  | namespace BCLog { | 
| 63 |  |     using CategoryMask = uint64_t; | 
| 64 |  |     enum LogFlags : CategoryMask { | 
| 65 |  |         NONE        = CategoryMask{0}, | 
| 66 |  |         NET         = (CategoryMask{1} <<  0), | 
| 67 |  |         TOR         = (CategoryMask{1} <<  1), | 
| 68 |  |         MEMPOOL     = (CategoryMask{1} <<  2), | 
| 69 |  |         HTTP        = (CategoryMask{1} <<  3), | 
| 70 |  |         BENCH       = (CategoryMask{1} <<  4), | 
| 71 |  |         ZMQ         = (CategoryMask{1} <<  5), | 
| 72 |  |         WALLETDB    = (CategoryMask{1} <<  6), | 
| 73 |  |         RPC         = (CategoryMask{1} <<  7), | 
| 74 |  |         ESTIMATEFEE = (CategoryMask{1} <<  8), | 
| 75 |  |         ADDRMAN     = (CategoryMask{1} <<  9), | 
| 76 |  |         SELECTCOINS = (CategoryMask{1} << 10), | 
| 77 |  |         REINDEX     = (CategoryMask{1} << 11), | 
| 78 |  |         CMPCTBLOCK  = (CategoryMask{1} << 12), | 
| 79 |  |         RAND        = (CategoryMask{1} << 13), | 
| 80 |  |         PRUNE       = (CategoryMask{1} << 14), | 
| 81 |  |         PROXY       = (CategoryMask{1} << 15), | 
| 82 |  |         MEMPOOLREJ  = (CategoryMask{1} << 16), | 
| 83 |  |         LIBEVENT    = (CategoryMask{1} << 17), | 
| 84 |  |         COINDB      = (CategoryMask{1} << 18), | 
| 85 |  |         QT          = (CategoryMask{1} << 19), | 
| 86 |  |         LEVELDB     = (CategoryMask{1} << 20), | 
| 87 |  |         VALIDATION  = (CategoryMask{1} << 21), | 
| 88 |  |         I2P         = (CategoryMask{1} << 22), | 
| 89 |  |         IPC         = (CategoryMask{1} << 23), | 
| 90 |  | #ifdef DEBUG_LOCKCONTENTION | 
| 91 |  |         LOCK        = (CategoryMask{1} << 24), | 
| 92 |  | #endif | 
| 93 |  |         BLOCKSTORAGE = (CategoryMask{1} << 25), | 
| 94 |  |         TXRECONCILIATION = (CategoryMask{1} << 26), | 
| 95 |  |         SCAN        = (CategoryMask{1} << 27), | 
| 96 |  |         TXPACKAGES  = (CategoryMask{1} << 28), | 
| 97 |  |         ALL         = ~NONE, | 
| 98 |  |     }; | 
| 99 |  |     enum class Level { | 
| 100 |  |         Trace = 0, // High-volume or detailed logging for development/debugging | 
| 101 |  |         Debug,     // Reasonably noisy logging, but still usable in production | 
| 102 |  |         Info,      // Default | 
| 103 |  |         Warning, | 
| 104 |  |         Error, | 
| 105 |  |     }; | 
| 106 |  |     constexpr auto DEFAULT_LOG_LEVEL{Level::Debug}; | 
| 107 |  |     constexpr size_t DEFAULT_MAX_LOG_BUFFER{1'000'000}; // buffer up to 1MB of log data prior to StartLogging | 
| 108 |  |     constexpr uint64_t RATELIMIT_MAX_BYTES{1024 * 1024}; // maximum number of bytes per source location that can be logged within the RATELIMIT_WINDOW | 
| 109 |  |     constexpr auto RATELIMIT_WINDOW{1h}; // time window after which log ratelimit stats are reset | 
| 110 |  |     constexpr bool DEFAULT_LOGRATELIMIT{true}; | 
| 111 |  |  | 
| 112 |  |     //! Fixed window rate limiter for logging. | 
| 113 |  |     class LogRateLimiter | 
| 114 |  |     { | 
| 115 |  |     public: | 
| 116 |  |         //! Keeps track of an individual source location and how many available bytes are left for logging from it. | 
| 117 |  |         struct Stats { | 
| 118 |  |             //! Remaining bytes | 
| 119 |  |             uint64_t m_available_bytes; | 
| 120 |  |             //! Number of bytes that were consumed but didn't fit in the available bytes. | 
| 121 |  |             uint64_t m_dropped_bytes{0}; | 
| 122 |  |  | 
| 123 | 0 |             Stats(uint64_t max_bytes) : m_available_bytes{max_bytes} {} | 
| 124 |  |             //! Updates internal accounting and returns true if enough available_bytes were remaining | 
| 125 |  |             bool Consume(uint64_t bytes); | 
| 126 |  |         }; | 
| 127 |  |  | 
| 128 |  |     private: | 
| 129 |  |         mutable StdMutex m_mutex; | 
| 130 |  |  | 
| 131 |  |         //! Stats for each source location that has attempted to log something. | 
| 132 |  |         std::unordered_map<std::source_location, Stats, SourceLocationHasher, SourceLocationEqual> m_source_locations GUARDED_BY(m_mutex); | 
| 133 |  |         //! Whether any log locations are suppressed. Cached view on m_source_locations for performance reasons. | 
| 134 |  |         std::atomic<bool> m_suppression_active{false}; | 
| 135 |  |         LogRateLimiter(uint64_t max_bytes, std::chrono::seconds reset_window); | 
| 136 |  |  | 
| 137 |  |     public: | 
| 138 |  |         using SchedulerFunction = std::function<void(std::function<void()>, std::chrono::milliseconds)>; | 
| 139 |  |         /** | 
| 140 |  |          * @param scheduler_func    Callable object used to schedule resetting the window. The first | 
| 141 |  |          *                          parameter is the function to be executed, and the second is the | 
| 142 |  |          *                          reset_window interval. | 
| 143 |  |          * @param max_bytes         Maximum number of bytes that can be logged for each source | 
| 144 |  |          *                          location. | 
| 145 |  |          * @param reset_window      Time window after which the stats are reset. | 
| 146 |  |          */ | 
| 147 |  |         static std::shared_ptr<LogRateLimiter> Create( | 
| 148 |  |             SchedulerFunction&& scheduler_func, | 
| 149 |  |             uint64_t max_bytes, | 
| 150 |  |             std::chrono::seconds reset_window); | 
| 151 |  |         //! Maximum number of bytes logged per location per window. | 
| 152 |  |         const uint64_t m_max_bytes; | 
| 153 |  |         //! Interval after which the window is reset. | 
| 154 |  |         const std::chrono::seconds m_reset_window; | 
| 155 |  |         //! Suppression status of a source log location. | 
| 156 |  |         enum class Status { | 
| 157 |  |             UNSUPPRESSED,     // string fits within the limit | 
| 158 |  |             NEWLY_SUPPRESSED, // suppression has started since this string | 
| 159 |  |             STILL_SUPPRESSED, // suppression is still ongoing | 
| 160 |  |         }; | 
| 161 |  |         //! Consumes `source_loc`'s available bytes corresponding to the size of the (formatted) | 
| 162 |  |         //! `str` and returns its status. | 
| 163 |  |         [[nodiscard]] Status Consume( | 
| 164 |  |             const std::source_location& source_loc, | 
| 165 |  |             const std::string& str) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex); | 
| 166 |  |         //! Resets all usage to zero. Called periodically by the scheduler. | 
| 167 |  |         void Reset() EXCLUSIVE_LOCKS_REQUIRED(!m_mutex); | 
| 168 |  |         //! Returns true if any log locations are currently being suppressed. | 
| 169 | 0 |         bool SuppressionsActive() const { return m_suppression_active; } | 
| 170 |  |     }; | 
| 171 |  |  | 
| 172 |  |     class Logger | 
| 173 |  |     { | 
| 174 |  |     public: | 
| 175 |  |         struct BufferedLog { | 
| 176 |  |             SystemClock::time_point now; | 
| 177 |  |             std::chrono::seconds mocktime; | 
| 178 |  |             std::string str, threadname; | 
| 179 |  |             std::source_location source_loc; | 
| 180 |  |             LogFlags category; | 
| 181 |  |             Level level; | 
| 182 |  |         }; | 
| 183 |  |  | 
| 184 |  |     private: | 
| 185 |  |         mutable StdMutex m_cs; // Can not use Mutex from sync.h because in debug mode it would cause a deadlock when a potential deadlock was detected | 
| 186 |  |  | 
| 187 |  |         FILE* m_fileout GUARDED_BY(m_cs) = nullptr; | 
| 188 |  |         std::list<BufferedLog> m_msgs_before_open GUARDED_BY(m_cs); | 
| 189 |  |         bool m_buffering GUARDED_BY(m_cs) = true; //!< Buffer messages before logging can be started. | 
| 190 |  |         size_t m_max_buffer_memusage GUARDED_BY(m_cs){DEFAULT_MAX_LOG_BUFFER}; | 
| 191 |  |         size_t m_cur_buffer_memusage GUARDED_BY(m_cs){0}; | 
| 192 |  |         size_t m_buffer_lines_discarded GUARDED_BY(m_cs){0}; | 
| 193 |  |  | 
| 194 |  |         //! Manages the rate limiting of each log location. | 
| 195 |  |         std::shared_ptr<LogRateLimiter> m_limiter GUARDED_BY(m_cs); | 
| 196 |  |  | 
| 197 |  |         //! Category-specific log level. Overrides `m_log_level`. | 
| 198 |  |         std::unordered_map<LogFlags, Level> m_category_log_levels GUARDED_BY(m_cs); | 
| 199 |  |  | 
| 200 |  |         //! If there is no category-specific log level, all logs with a severity | 
| 201 |  |         //! level lower than `m_log_level` will be ignored. | 
| 202 |  |         std::atomic<Level> m_log_level{DEFAULT_LOG_LEVEL}; | 
| 203 |  |  | 
| 204 |  |         /** Log categories bitfield. */ | 
| 205 |  |         std::atomic<CategoryMask> m_categories{BCLog::NONE}; | 
| 206 |  |  | 
| 207 |  |         void FormatLogStrInPlace(std::string& str, LogFlags category, Level level, const std::source_location& source_loc, std::string_view threadname, SystemClock::time_point now, std::chrono::seconds mocktime) const; | 
| 208 |  |  | 
| 209 |  |         std::string LogTimestampStr(SystemClock::time_point now, std::chrono::seconds mocktime) const; | 
| 210 |  |  | 
| 211 |  |         /** Slots that connect to the print signal */ | 
| 212 |  |         std::list<std::function<void(const std::string&)>> m_print_callbacks GUARDED_BY(m_cs) {}; | 
| 213 |  |  | 
| 214 |  |         /** Send a string to the log output (internal) */ | 
| 215 |  |         void LogPrintStr_(std::string_view str, std::source_location&& source_loc, BCLog::LogFlags category, BCLog::Level level, bool should_ratelimit) | 
| 216 |  |             EXCLUSIVE_LOCKS_REQUIRED(m_cs); | 
| 217 |  |  | 
| 218 |  |         std::string GetLogPrefix(LogFlags category, Level level) const; | 
| 219 |  |  | 
| 220 |  |     public: | 
| 221 |  |         bool m_print_to_console = false; | 
| 222 |  |         bool m_print_to_file = false; | 
| 223 |  |  | 
| 224 |  |         bool m_log_timestamps = DEFAULT_LOGTIMESTAMPS; | 
| 225 |  |         bool m_log_time_micros = DEFAULT_LOGTIMEMICROS; | 
| 226 |  |         bool m_log_threadnames = DEFAULT_LOGTHREADNAMES; | 
| 227 |  |         bool m_log_sourcelocations = DEFAULT_LOGSOURCELOCATIONS; | 
| 228 |  |         bool m_always_print_category_level = DEFAULT_LOGLEVELALWAYS; | 
| 229 |  |  | 
| 230 |  |         fs::path m_file_path; | 
| 231 |  |         std::atomic<bool> m_reopen_file{false}; | 
| 232 |  |  | 
| 233 |  |         /** Send a string to the log output */ | 
| 234 |  |         void LogPrintStr(std::string_view str, std::source_location&& source_loc, BCLog::LogFlags category, BCLog::Level level, bool should_ratelimit) | 
| 235 |  |             EXCLUSIVE_LOCKS_REQUIRED(!m_cs); | 
| 236 |  |  | 
| 237 |  |         /** Returns whether logs will be written to any output */ | 
| 238 |  |         bool Enabled() const EXCLUSIVE_LOCKS_REQUIRED(!m_cs) | 
| 239 | 1.81M |         { | 
| 240 | 1.81M |             StdLockGuard scoped_lock(m_cs); | 
| 241 | 1.81M |             return m_buffering || m_print_to_console1.71M|| m_print_to_file1.71M|| !m_print_callbacks.empty()1.71M; | 
| 242 | 1.81M |         } | 
| 243 |  |  | 
| 244 |  |         /** Connect a slot to the print signal and return the connection */ | 
| 245 |  |         std::list<std::function<void(const std::string&)>>::iterator PushBackCallback(std::function<void(const std::string&)> fun) EXCLUSIVE_LOCKS_REQUIRED(!m_cs) | 
| 246 | 0 |         { | 
| 247 | 0 |             StdLockGuard scoped_lock(m_cs); | 
| 248 | 0 |             m_print_callbacks.push_back(std::move(fun)); | 
| 249 | 0 |             return --m_print_callbacks.end(); | 
| 250 | 0 |         } | 
| 251 |  |  | 
| 252 |  |         /** Delete a connection */ | 
| 253 |  |         void DeleteCallback(std::list<std::function<void(const std::string&)>>::iterator it) EXCLUSIVE_LOCKS_REQUIRED(!m_cs) | 
| 254 | 0 |         { | 
| 255 | 0 |             StdLockGuard scoped_lock(m_cs); | 
| 256 | 0 |             m_print_callbacks.erase(it); | 
| 257 | 0 |         } | 
| 258 |  |  | 
| 259 |  |         /** Start logging (and flush all buffered messages) */ | 
| 260 |  |         bool StartLogging() EXCLUSIVE_LOCKS_REQUIRED(!m_cs); | 
| 261 |  |         /** Only for testing */ | 
| 262 |  |         void DisconnectTestLogger() EXCLUSIVE_LOCKS_REQUIRED(!m_cs); | 
| 263 |  |  | 
| 264 |  |         void SetRateLimiting(std::shared_ptr<LogRateLimiter> limiter) EXCLUSIVE_LOCKS_REQUIRED(!m_cs) | 
| 265 | 0 |         { | 
| 266 | 0 |             StdLockGuard scoped_lock(m_cs); | 
| 267 | 0 |             m_limiter = std::move(limiter); | 
| 268 | 0 |         } | 
| 269 |  |  | 
| 270 |  |         /** Disable logging | 
| 271 |  |          * This offers a slight speedup and slightly smaller memory usage | 
| 272 |  |          * compared to leaving the logging system in its default state. | 
| 273 |  |          * Mostly intended for libbitcoin-kernel apps that don't want any logging. | 
| 274 |  |          * Should be used instead of StartLogging(). | 
| 275 |  |          */ | 
| 276 |  |         void DisableLogging() EXCLUSIVE_LOCKS_REQUIRED(!m_cs); | 
| 277 |  |  | 
| 278 |  |         void ShrinkDebugFile(); | 
| 279 |  |  | 
| 280 |  |         std::unordered_map<LogFlags, Level> CategoryLevels() const EXCLUSIVE_LOCKS_REQUIRED(!m_cs) | 
| 281 | 0 |         { | 
| 282 | 0 |             StdLockGuard scoped_lock(m_cs); | 
| 283 | 0 |             return m_category_log_levels; | 
| 284 | 0 |         } | 
| 285 |  |         void SetCategoryLogLevel(const std::unordered_map<LogFlags, Level>& levels) EXCLUSIVE_LOCKS_REQUIRED(!m_cs) | 
| 286 | 0 |         { | 
| 287 | 0 |             StdLockGuard scoped_lock(m_cs); | 
| 288 | 0 |             m_category_log_levels = levels; | 
| 289 | 0 |         } | 
| 290 |  |         bool SetCategoryLogLevel(std::string_view category_str, std::string_view level_str) EXCLUSIVE_LOCKS_REQUIRED(!m_cs); | 
| 291 |  |  | 
| 292 | 0 |         Level LogLevel() const { return m_log_level.load(); } | 
| 293 | 0 |         void SetLogLevel(Level level) { m_log_level = level; } | 
| 294 |  |         bool SetLogLevel(std::string_view level); | 
| 295 |  |  | 
| 296 | 0 |         CategoryMask GetCategoryMask() const { return m_categories.load(); } | 
| 297 |  |  | 
| 298 |  |         void EnableCategory(LogFlags flag); | 
| 299 |  |         bool EnableCategory(std::string_view str); | 
| 300 |  |         void DisableCategory(LogFlags flag); | 
| 301 |  |         bool DisableCategory(std::string_view str); | 
| 302 |  |  | 
| 303 |  |         bool WillLogCategory(LogFlags category) const; | 
| 304 |  |         bool WillLogCategoryLevel(LogFlags category, Level level) const EXCLUSIVE_LOCKS_REQUIRED(!m_cs); | 
| 305 |  |  | 
| 306 |  |         /** Returns a vector of the log categories in alphabetical order. */ | 
| 307 |  |         std::vector<LogCategory> LogCategoriesList() const; | 
| 308 |  |         /** Returns a string with the log categories in alphabetical order. */ | 
| 309 |  |         std::string LogCategoriesString() const | 
| 310 | 102k |         { | 
| 311 | 2.87M |             return util::Join(LogCategoriesList(), ", ", [&](const LogCategory& i) { return i.category; }); | 
| 312 | 102k |         }; | 
| 313 |  |  | 
| 314 |  |         //! Returns a string with all user-selectable log levels. | 
| 315 |  |         std::string LogLevelsString() const; | 
| 316 |  |  | 
| 317 |  |         //! Returns the string representation of a log level. | 
| 318 |  |         static std::string LogLevelToStr(BCLog::Level level); | 
| 319 |  |  | 
| 320 |  |         bool DefaultShrinkDebugFile() const; | 
| 321 |  |     }; | 
| 322 |  |  | 
| 323 |  | } // namespace BCLog | 
| 324 |  |  | 
| 325 |  | BCLog::Logger& LogInstance(); | 
| 326 |  |  | 
| 327 |  | /** Return true if log accepts specified category, at the specified level. */ | 
| 328 |  | static inline bool LogAcceptCategory(BCLog::LogFlags category, BCLog::Level level) | 
| 329 | 15.8M | { | 
| 330 | 15.8M |     return LogInstance().WillLogCategoryLevel(category, level); | 
| 331 | 15.8M | } Unexecuted instantiation: addition_overflow.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEaddrman.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 27.5k | { |  | 330 | 27.5k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 27.5k | } | 
Unexecuted instantiation: autofile.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEbanman.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 51.2k | { |  | 330 | 51.2k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 51.2k | } | 
Unexecuted instantiation: base_encode_decode.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: bip324.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: bitdeque.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: bitset.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: block.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: block_header.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: block_index.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: blockfilter.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: bloom_filter.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: buffered_file.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: chain.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: checkqueue.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: cluster_linearize.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: cmpctblock.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coins_view.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coinscache_sim.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: connman.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto_aes256.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto_aes256cbc.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto_chacha20.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto_chacha20poly1305.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto_common.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto_diff_fuzz_chacha20.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto_hkdf_hmac_sha256_l32.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypto_poly1305.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: cuckoocache.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: deserialize.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: feefrac.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: fee_rate.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: feeratediagram.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: fees.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: flatfile.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: float.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: golomb_rice.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: headerssync.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: http_request.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: i2p.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: integer.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: key.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: kitchen_sink.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: load_external_block_file.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: merkle.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: merkleblock.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: message.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: miniscript.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: minisketch.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: mini_miner.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: muhash.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: multiplication_overflow.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEnet.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 2.35M | { |  | 330 | 2.35M |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 2.35M | } | 
Unexecuted instantiation: net_permissions.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: netaddress.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: netbase_dns_lookup.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: node_eviction.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: p2p_handshake.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: p2p_headers_presync.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: p2p_transport_serialization.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: pcp.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: package_eval.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: parse_hd_keypath.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: partially_downloaded_block.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: policy_estimator.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: policy_estimator_io.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: poolresource.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: pow.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: prevector.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: primitives_transaction.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: process_message.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: process_messages.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: protocol.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: psbt.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: random.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: rbf.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: rolling_bloom_filter.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: rpc.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script_assets_test_minimizer.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script_descriptor_cache.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script_flags.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script_format.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script_interpreter.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script_ops.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script_sigcache.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: script_sign.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: scriptnum_ops.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: secp256k1_ec_seckey_import_export_der.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: secp256k1_ecdsa_signature_parse_der_lax.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: signature_checker.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: signet.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: socks5.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: span.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: string.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: strprintf.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: system.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: torcontrol.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: transaction.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: txdownloadman.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: tx_in.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: tx_out.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: tx_pool.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: txgraph.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: txorphan.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: txrequest.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: utxo_snapshot.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: utxo_total_supply.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: validation_load_mempool.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: vecdeque.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: versionbits.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coincontrol.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coinselection.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: crypter.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: scriptpubkeyman.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: spend.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: wallet_bdb_parser.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: mempool.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: threadinterrupt.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: util.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: chainparams.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coins.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: args.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: bloom.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: config.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: netif.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: core_read.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: core_write.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: external_signer.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: common.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: net_types.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: netbase.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: request.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: signingprovider.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: asmap.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: batchpriority.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: exception.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: fs_helpers.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: sock.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: thread.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: logging.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: streams.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: db.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: dump.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: external_signer_scriptpubkeyman.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: feebumper.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: interfaces.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: load.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: migrate.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: receive.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: addresses.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: backup.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: encrypt.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: signmessage.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: transactions.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: wallet.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: sqlite.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: walletdb.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: walletutil.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: mining.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: setup_common.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEtxmempool.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 744k | { |  | 330 | 744k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 744k | } | 
validation.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 626k | { |  | 330 | 626k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 626k | } | 
Unexecuted instantiation: addrdb.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEblockencodings.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 268k | { |  | 330 | 268k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 268k | } | 
dbwrapper.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 624k | { |  | 330 | 624k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 624k | } | 
Unexecuted instantiation: httprpc.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: httpserver.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: base.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: blockfilterindex.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coinstatsindex.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: txindex.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: init.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coinstats.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: context.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: mapport.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEnet_processing.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 9.03M | { |  | 330 | 9.03M |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 9.03M | } | 
Unexecuted instantiation: netgroup.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: abort.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: blockmanager_args.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: blockstorage.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: caches.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: chainstate.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: chainstatemanager_args.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coin.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: coins_view_args.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: database_args.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: kernel_notifications.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: mempool_args.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: mempool_persist.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: mempool_persist_args.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: miner.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: peerman_args.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEtimeoffsets.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 8.90k | { |  | 330 | 8.90k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 8.90k | } | 
txdownloadman_impl.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 747k | { |  | 330 | 747k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 747k | } | 
Unexecuted instantiation: txorphanage.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: txreconciliation.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: noui.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: truc_policy.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: rest.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: blockchain.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: node.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: rawtransaction.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: server.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: server_util.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: txoutproof.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEUnexecuted instantiation: sigcache.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelEtxdb.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 9.16k | { |  | 330 | 9.16k |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 9.16k | } | 
validationinterface.cpp:_ZL17LogAcceptCategoryN5BCLog8LogFlagsENS_5LevelE| Line | Count | Source |  | 329 | 1.32M | { |  | 330 | 1.32M |     return LogInstance().WillLogCategoryLevel(category, level); |  | 331 | 1.32M | } | 
 | 
| 332 |  |  | 
| 333 |  | /** Return true if str parses as a log category and set the flag */ | 
| 334 |  | bool GetLogCategory(BCLog::LogFlags& flag, std::string_view str); | 
| 335 |  |  | 
| 336 |  | template <typename... Args> | 
| 337 |  | inline void LogPrintFormatInternal(std::source_location&& source_loc, BCLog::LogFlags flag, BCLog::Level level, bool should_ratelimit, util::ConstevalFormatString<sizeof...(Args)> fmt, const Args&... args) | 
| 338 | 1.81M | { | 
| 339 | 1.81M |     if (LogInstance().Enabled()) { | 
| 340 | 102k |         std::string log_msg; | 
| 341 | 102k |         try { | 
| 342 | 102k |             log_msg = tfm::format(fmt, args...); | 
| 343 | 102k |         } catch (tinyformat::format_error& fmterr) { | 
| 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; | 
| 345 | 0 |         } | 
| 346 | 102k |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); | 
| 347 | 102k |     } | 
| 348 | 1.81M | } _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 382k | { |  | 339 | 382k |     if (LogInstance().Enabled()) { |  | 340 | 51.2k |         std::string log_msg; |  | 341 | 51.2k |         try { |  | 342 | 51.2k |             log_msg = tfm::format(fmt, args...); |  | 343 | 51.2k |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 51.2k |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 51.2k |     } |  | 348 | 382k | } | 
_Z22LogPrintFormatInternalIJiEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 410k | { |  | 339 | 410k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 410k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEExxiEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 155k | { |  | 339 | 155k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 155k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_S6_S6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 283k | { |  | 339 | 283k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 283k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEiEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEiS6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJtNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEtS6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEtEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJhEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_S6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJjEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__121__quoted_output_proxyIcNS0_11char_traitsIcEEEEiEEvONS0_15source_locationEN5BCLog8LogFlagsENS7_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__121__quoted_output_proxyIcNS0_11char_traitsIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS7_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJjNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__117basic_string_viewIcNS0_11char_traitsIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS7_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcjS1_yxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJyEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJPKcNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEvONS2_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 51.2k | { |  | 339 | 51.2k |     if (LogInstance().Enabled()) { |  | 340 | 51.2k |         std::string log_msg; |  | 341 | 51.2k |         try { |  | 342 | 51.2k |             log_msg = tfm::format(fmt, args...); |  | 343 | 51.2k |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 51.2k |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 51.2k |     } |  | 348 | 51.2k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJiPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEPKcEEvONS0_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA7_cPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcS1_EEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA8_cPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA9_cPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA14_cPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA5_cPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJA16_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 910 | { |  | 339 | 910 |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 910 | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJA12_cPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA16_cEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmNSt3__121__quoted_output_proxyIcNS0_11char_traitsIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS7_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEiiEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEiiiiEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_iiEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_mEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJimNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEiiEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJiiEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 102k | { |  | 339 | 102k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 102k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEmEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEmmmmjEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEddEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmPKciEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcimEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA6_ciEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxxyNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxxxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxiEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA13_cEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEbEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_EEvONS2_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEhiEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEhS6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJddEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJdEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJdNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA17_cEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEExEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA3_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEdEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 44.8k | { |  | 339 | 44.8k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 44.8k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEjxEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEjS6_S6_xEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJjxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_EEvONS2_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA9_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJA17_cbEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 51.2k | { |  | 339 | 51.2k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 51.2k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEmxEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA30_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEExEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxxmEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJ12ServiceFlagsS0_NSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiiNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEbxEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiibxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEENS0_6atomicIiEES8_S6_bxS6_S6_EEvONS0_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_iNS0_6atomicIiEExS6_S6_EEvONS0_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 5.59k | { |  | 339 | 5.59k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 5.59k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJixEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_xEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 115k | { |  | 339 | 115k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 115k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJmyyxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEPKcxEEvONS0_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEExEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA20_cxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmjNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEixEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEmjEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA15_cxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEA17_cEEvONS0_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_mmEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_xS6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_ixEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJixNSt3__16atomicIiEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEENS0_6atomicIyEEymEEvONS0_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJhNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJjjNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEjS6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA16_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEjEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA16_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEjPKcS9_EEvONS1_15source_locationEN5BCLog8LogFlagsENSC_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA13_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEExEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA13_cmNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_xEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA13_cxNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEixEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmmiEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA19_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA19_cEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJ14ChainstateRoleiiEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJ14ChainstateRoleyyxiiiEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJyNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA15_ciEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA18_ciEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJN4node13BlockfileTypeENS0_15BlockfileCursorEEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEijEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJibiEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEjyEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiyyEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxxxxxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJddmEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxyxyEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJdiiddEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxmEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEExEEvONS2_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_xmmEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_jEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxjjEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJjjEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxbEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJidddddfddddddfddddEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmmEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEllEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJjmjjmjPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmdEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJmmjEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 102k | { |  | 339 | 102k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 102k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEfEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__117basic_string_viewIcNS0_11char_traitsIcEEEENS0_12basic_stringIcS3_NS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEPKcS6_S6_EEvONS0_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA21_cmNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmxxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_S6_S6_S6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJmmxxEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_S6_iidyS6_ddjS6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 21.8k | { |  | 339 | 21.8k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 21.8k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_PKcEEvONS0_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA27_cEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJA18_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEidS7_EEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 14.8k | { |  | 339 | 14.8k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 14.8k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJA13_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJdddEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKciNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEvONS2_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJjdddddEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiddddEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcbbbbEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA22_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA14_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJA11_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_EEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 3.25k | { |  | 339 | 3.25k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 3.25k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJA42_cEEvONSt3__115source_locationEN5BCLog8LogFlagsENS4_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJiyyA13_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEA42_cEEvONS1_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA18_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA18_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_EEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJidEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 15.0k | { |  | 339 | 15.0k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 15.0k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJxdEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT__Z22LogPrintFormatInternalIJA12_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 899 | { |  | 339 | 899 |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 899 | } | 
_Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEiS6_dEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_| Line | Count | Source |  | 338 | 51.2k | { |  | 339 | 51.2k |     if (LogInstance().Enabled()) { |  | 340 | 0 |         std::string log_msg; |  | 341 | 0 |         try { |  | 342 | 0 |             log_msg = tfm::format(fmt, args...); |  | 343 | 0 |         } catch (tinyformat::format_error& fmterr) { |  | 344 | 0 |             log_msg = "Error \"" + std::string{fmterr.what()} + "\" while formatting log message: " + fmt.fmt; |  | 345 | 0 |         } |  | 346 | 0 |         LogInstance().LogPrintStr(log_msg, std::move(source_loc), flag, level, should_ratelimit); |  | 347 | 0 |     } |  | 348 | 51.2k | } | 
Unexecuted instantiation: _Z22LogPrintFormatInternalIJiNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_EEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA17_cPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA22_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_EEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA22_cyPKcEEvONSt3__115source_locationEN5BCLog8LogFlagsENS6_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEdEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJxfmEEvONSt3__115source_locationEN5BCLog8LogFlagsENS3_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJymNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_iEEvONS0_15source_locationEN5BCLog8LogFlagsENS9_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA24_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_PKcEEvONS1_15source_locationEN5BCLog8LogFlagsENSC_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_bEEvONS2_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA16_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEiEEvONS2_15source_locationEN5BCLog8LogFlagsENSB_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJPKcjmEEvONSt3__115source_locationEN5BCLog8LogFlagsENS5_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA13_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_EEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_Unexecuted instantiation: _Z22LogPrintFormatInternalIJA17_cNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEvONS1_15source_locationEN5BCLog8LogFlagsENSA_5LevelEbN4util21ConstevalFormatStringIXsZT_EEEDpRKT_ | 
| 349 |  |  | 
| 350 | 1.81M | #define LogPrintLevel_(category, level, should_ratelimit, ...) LogPrintFormatInternal(std::source_location::current(), category, level, should_ratelimit, __VA_ARGS__54.8k) | 
| 351 |  |  | 
| 352 |  | // Log unconditionally. Uses basic rate limiting to mitigate disk filling attacks. | 
| 353 |  | // Be conservative when using functions that unconditionally log to debug.log! | 
| 354 |  | // It should not be the case that an inbound peer can fill up a user's storage | 
| 355 |  | // with debug.log entries. | 
| 356 | 1.78M | #define LogInfo(...) LogPrintLevel_(BCLog::LogFlags::ALL, BCLog::Level::Info, /*should_ratelimit=*/true, __VA_ARGS__) | 
| 357 | 0 | #define LogWarning(...) LogPrintLevel_(BCLog::LogFlags::ALL, BCLog::Level::Warning, /*should_ratelimit=*/true, __VA_ARGS__) | 
| 358 | 5.06k | #define LogError(...) LogPrintLevel_(BCLog::LogFlags::ALL, BCLog::Level::Error, /*should_ratelimit=*/true, __VA_ARGS__) | 
| 359 |  |  | 
| 360 |  | // Deprecated unconditional logging. | 
| 361 | 232k | #define LogPrintf(...) LogInfo(__VA_ARGS__) | 
| 362 |  |  | 
| 363 |  | // Use a macro instead of a function for conditional logging to prevent | 
| 364 |  | // evaluating arguments when logging for the category is not enabled. | 
| 365 |  |  | 
| 366 |  | // Log by prefixing the output with the passed category name and severity level. This can either | 
| 367 |  | // log conditionally if the category is allowed or unconditionally if level >= BCLog::Level::Info | 
| 368 |  | // is passed. If this function logs unconditionally, logging to disk is rate-limited. This is | 
| 369 |  | // important so that callers don't need to worry about accidentally introducing a disk-fill | 
| 370 |  | // vulnerability if level >= Info is used. Additionally, users specifying -debug are assumed to be | 
| 371 |  | // developers or power users who are aware that -debug may cause excessive disk usage due to logging. | 
| 372 |  | #define LogPrintLevel(category, level, ...)                           \ | 
| 373 | 15.2M |     do {                                                              \ | 
| 374 | 15.2M |         if (LogAcceptCategory((category), (level))) {                 \ | 
| 375 | 0 |             bool rate_limit{level >= BCLog::Level::Info};             \ | 
| 376 | 0 |             LogPrintLevel_(category, level, rate_limit, __VA_ARGS__); \ | 
| 377 | 0 |         }                                                             \ | 
| 378 | 15.2M |     } while (0) | 
| 379 |  |  | 
| 380 |  | // Log conditionally, prefixing the output with the passed category name. | 
| 381 | 15.2M | #define LogDebug(category, ...) LogPrintLevel(category, BCLog::Level::Debug, __VA_ARGS__) | 
| 382 | 0 | #define LogTrace(category, ...) LogPrintLevel(category, BCLog::Level::Trace, __VA_ARGS__) | 
| 383 |  |  | 
| 384 |  | #endif // BITCOIN_LOGGING_H |