LCOV - code coverage report
Current view: top level - src/util - exception.cpp (source / functions) Hit Total Coverage
Test: fuzz_coverage.info Lines: 1 13 7.7 %
Date: 2023-10-05 15:40:34 Functions: 1 3 33.3 %
Branches: 0 12 0.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                 :            :             "UNKNOWN EXCEPTION       \n%s in %s       \n", pszModule, thread_name);
      34                 :          0 : }
      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 1.14