18#ifndef CRYPTOPP_TRAP_H 
   19#define CRYPTOPP_TRAP_H 
   23#if defined(CRYPTOPP_DEBUG) 
   26#  if defined(UNIX_SIGNALS_AVAILABLE) 
   28#  elif defined(CRYPTOPP_WIN32_AVAILABLE) && !defined(__CYGWIN__) 
   29     extern "C" __declspec(dllimport) 
void __stdcall DebugBreak();
 
   30     extern "C" __declspec(dllimport)  
int __stdcall IsDebuggerPresent();
 
   36#if defined(CRYPTOPP_DOXYGEN_PROCESSING) 
   68#  define CRYPTOPP_ASSERT(exp) { ... } 
   71#if defined(CRYPTOPP_DEBUG) 
   72# if defined(UNIX_SIGNALS_AVAILABLE) || defined(__CYGWIN__) 
   73#  define CRYPTOPP_ASSERT(exp) {                                  \ 
   75      std::ostringstream oss;                                     \ 
   76      oss << "Assertion failed: " << __FILE__ << "("              \ 
   77          << __LINE__ << "): " << __func__                        \ 
   79      std::cout << std::flush;                                    \ 
   80      std::cerr << oss.str();                                     \ 
   84# elif CRYPTOPP_DEBUG && defined(CRYPTOPP_WIN32_AVAILABLE) 
   85#  define CRYPTOPP_ASSERT(exp) {                                  \ 
   87      std::ostringstream oss;                                     \ 
   88      oss << "Assertion failed: " << __FILE__ << "("              \ 
   89          << __LINE__ << "): " << __FUNCTION__                    \ 
   91      std::cout << std::flush;                                    \ 
   92      std::cerr << oss.str();                                     \ 
   93      if (IsDebuggerPresent()) {DebugBreak();}                    \ 
  100#ifndef CRYPTOPP_ASSERT 
  101#  define CRYPTOPP_ASSERT(exp) (void)0 
  108#if (CRYPTOPP_DEBUG && defined(UNIX_SIGNALS_AVAILABLE)) || defined(CRYPTOPP_DOXYGEN_PROCESSING) 
  153#if defined(CRYPTOPP_DOXYGEN_PROCESSING) 
Library configuration file.
 
Crypto++ library namespace.
 
Utility class for trapping OS signals.
 
Signal handler for Linux and Unix compatibles.