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-09-26 12:08:55 Functions: 1 3 33.3 %

          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