LCOV - code coverage report
Current view: top level - src/util - exception.cpp (source / functions) Coverage Total Hit
Test: fuzz_coverage.info Lines: 0.0 % 12 0
Test Date: 2024-12-04 04:00:22 Functions: 0.0 % 2 0
Branches: 0.0 % 8 0

             Branch data     Line data    Source code
       1                 :             : // Copyright (c) 2009-2010 Satoshi Nakamoto
       2                 :             : // Copyright (c) 2009-2023 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                 :             : #include <util/exception.h>
       7                 :             : 
       8                 :             : #include <logging.h>
       9                 :             : #include <tinyformat.h>
      10                 :             : 
      11                 :             : #include <exception>
      12                 :             : #include <iostream>
      13                 :             : #include <string>
      14                 :             : #include <typeinfo>
      15                 :             : 
      16                 :             : #ifdef WIN32
      17                 :             : #include <windows.h>
      18                 :             : #endif // WIN32
      19                 :             : 
      20                 :           0 : static std::string FormatException(const std::exception* pex, std::string_view thread_name)
      21                 :             : {
      22                 :             : #ifdef WIN32
      23                 :             :     char pszModule[MAX_PATH] = "";
      24                 :             :     GetModuleFileNameA(nullptr, pszModule, sizeof(pszModule));
      25                 :             : #else
      26                 :           0 :     const char* pszModule = "bitcoin";
      27                 :             : #endif
      28         [ #  # ]:           0 :     if (pex)
      29                 :           0 :         return strprintf(
      30         [ #  # ]:           0 :             "EXCEPTION: %s       \n%s       \n%s in %s       \n", typeid(*pex).name(), pex->what(), pszModule, thread_name);
      31                 :             :     else
      32                 :           0 :         return strprintf(
      33                 :           0 :             "UNKNOWN EXCEPTION       \n%s in %s       \n", pszModule, thread_name);
      34                 :             : }
      35                 :             : 
      36                 :           0 : void PrintExceptionContinue(const std::exception* pex, std::string_view thread_name)
      37                 :             : {
      38                 :           0 :     std::string message = FormatException(pex, thread_name);
      39         [ #  # ]:           0 :     LogPrintf("\n\n************************\n%s\n", message);
      40         [ #  # ]:           0 :     tfm::format(std::cerr, "\n\n************************\n%s\n", message);
      41                 :           0 : }
        

Generated by: LCOV version 2.0-1