19#ifndef CRYPTOPP_TRAP_H
20#define CRYPTOPP_TRAP_H
24#if defined(CRYPTOPP_DEBUG)
27# if defined(UNIX_SIGNALS_AVAILABLE)
29# elif defined(CRYPTOPP_WIN32_AVAILABLE) && !defined(__CYGWIN__)
30 extern "C" __declspec(dllimport)
void __stdcall DebugBreak();
31 extern "C" __declspec(dllimport)
int __stdcall IsDebuggerPresent();
37#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
69# define CRYPTOPP_ASSERT(exp) { ... }
72#if defined(CRYPTOPP_DEBUG) && defined(UNIX_SIGNALS_AVAILABLE)
73# define CRYPTOPP_ASSERT(exp) { \
75 std::ostringstream oss; \
76 oss << "Assertion failed: " << __FILE__ << "(" \
77 << __LINE__ << "): " << __func__ \
79 std::cerr << oss.str(); \
83#elif CRYPTOPP_DEBUG && defined(CRYPTOPP_WIN32_AVAILABLE) && !defined(__CYGWIN__)
84# define CRYPTOPP_ASSERT(exp) { \
86 std::ostringstream oss; \
87 oss << "Assertion failed: " << __FILE__ << "(" \
88 << __LINE__ << "): " << __FUNCTION__ \
90 std::cerr << oss.str(); \
91 if (IsDebuggerPresent()) {DebugBreak();} \
98#ifndef CRYPTOPP_ASSERT
99# define CRYPTOPP_ASSERT(exp) (void)0
106#if (CRYPTOPP_DEBUG && defined(UNIX_SIGNALS_AVAILABLE)) || defined(CRYPTOPP_DOXYGEN_PROCESSING)
151#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
Library configuration file.
Crypto++ library namespace.
Utility class for trapping OS signals.
Signal handler for Linux and Unix compatibles.