]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoardTest/Stackwalker.h
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoardTest / Stackwalker.h
diff --git a/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoardTest/Stackwalker.h b/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoardTest/Stackwalker.h
new file mode 100644 (file)
index 0000000..c48bb47
--- /dev/null
@@ -0,0 +1,57 @@
+/*////////////////////////////////////////////////////////////////////////////\r
+ *  Project:\r
+ *    Memory_and_Exception_Trace\r
+ *\r
+ * ///////////////////////////////////////////////////////////////////////////\r
+ *  File:\r
+ *    Stackwalker.h\r
+ *\r
+ *  Remarks:\r
+ *\r
+ *\r
+ *  Note:\r
+ *\r
+ *\r
+ *  Author:\r
+ *    Jochen Kalmbach\r
+ *\r
+ *////////////////////////////////////////////////////////////////////////////\r
+\r
+#ifndef __STACKWALKER_H__\r
+#define __STACKWALKER_H__\r
+\r
+// Only valid in the following environment: Intel platform, MS VC++ 5/6/7/7.1/8\r
+#ifndef _X86_\r
+#error Only INTEL envirnoments are supported!\r
+#endif\r
+\r
+// Only MS VC++ 5 to 7\r
+//#if (_MSC_VER < 1100) || (_MSC_VER > 1400)\r
+//#error Only MS VC++ 5/6/7/7.1/8 supported. Check if the '_CrtMemBlockHeader' has not changed with this compiler!\r
+//#endif\r
+\r
+typedef enum eAllocCheckOutput\r
+{\r
+  ACOutput_Simple,\r
+  ACOutput_Advanced,\r
+  ACOutput_XML\r
+};\r
+\r
+// Make extern "C", so it will also work with normal C-Programs\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+extern int InitAllocCheckWN(eAllocCheckOutput eOutput, LPCTSTR pszFilename, ULONG ulShowStackAtAlloc = 0);\r
+extern int InitAllocCheck(eAllocCheckOutput eOutput = ACOutput_Simple, BOOL bSetUnhandledExeptionFilter = TRUE, ULONG ulShowStackAtAlloc = 0);  // will create the filename by itself\r
+\r
+extern ULONG DeInitAllocCheck();\r
+\r
+extern DWORD StackwalkFilter( EXCEPTION_POINTERS *ep, DWORD status, LPCTSTR pszLogFile);\r
+\r
+extern void OnlyInstallUnhandeldExceptionFilter(eAllocCheckOutput eOutput = ACOutput_Simple);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif  // __STACKWALKER_H__\r