G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsStackWalker.h
Go to the documentation of this file.
1 
14 #pragma once
15 
16 #include <gsCore/gsConfig.h>
17 #include <gsCore/gsExport.h>
18 
19 #include <signal.h>
20 
21 #if defined(_WIN32) && !defined(NOMINMAX)
22  #define NOMINMAX 1
23  #include <windows.h>
24  #undef NOMINMAX
25 #endif
26 
27 
28 namespace gismo {
29 
30 namespace internal {
31 
32 #if defined(__GNUC__) && !defined(_WIN32)
33 
35  void gsStackWalker(void * context);
36 
38  void gsExceptionHook(int sig, siginfo_t * siginfo, void * context);
39 
41  void printGccDemangled(char * symbol);
42 
43 #endif
44 
45 
46 #if defined(_WIN32)
47 
49  GISMO_EXPORT void gsStackWalker(CONTEXT * context);
50 
52  GISMO_EXPORT LONG WINAPI gsExceptionHook(EXCEPTION_POINTERS * ExceptionInfo);
53 
55  GISMO_EXPORT BOOL PreventSetUnhandledExceptionFilter();
56 
57 
58  // see https://msdn.microsoft.com/en-us/library/5at7yxcs.aspx
59  //static const int gismoCrtDbgFlag =
60  //_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
61 
62 #endif
63 
64 
66 GISMO_EXPORT bool gsExceptionHandler();
67 
68 
70 static const bool gismoExceptionHandler = gsExceptionHandler();
71 
72 } // end namespace internal
73 
74 } // end namespace gismo
75 
76 
77 #ifndef GISMO_BUILD_LIB
78 #include GISMO_HPP_HEADER(gsStackWalker.cpp)
79 #endif
bool gsExceptionHandler()
Exception handler.
Handles shared library creation and other class attributes.
Provides preprocessor directives configuration of G+Smo.