mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			No EOL
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			No EOL
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| #include <boost/nowide/cstdio.hpp>
 | |
| #include <boost/nowide/fstream.hpp>
 | |
| #include "stackwalker.h"
 | |
| #include <eh.h>
 | |
| 
 | |
| class CBaseException : public CStackWalker
 | |
| {
 | |
| public:
 | |
| 	CBaseException(HANDLE hProcess = GetCurrentProcess(), WORD wPID = GetCurrentProcessId(), LPCTSTR lpSymbolPath = NULL, PEXCEPTION_POINTERS pEp = NULL);
 | |
| 	~CBaseException(void);
 | |
| 	virtual void OutputString(LPCTSTR lpszFormat, ...);
 | |
| 	virtual void ShowLoadModules();
 | |
| 	virtual void ShowCallstack(HANDLE hThread = GetCurrentThread(), const CONTEXT* context = NULL);
 | |
| 	virtual void ShowExceptionResoult(DWORD dwExceptionCode);
 | |
| 	virtual BOOL GetLogicalAddress(PVOID addr, PTSTR szModule, DWORD len, DWORD& section, DWORD& offset );
 | |
| 	virtual void ShowRegistorInformation(PCONTEXT pCtx);
 | |
| 	virtual void ShowExceptionInformation();
 | |
| 	static LONG WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS pExceptionInfo);
 | |
| 	static LONG WINAPI UnhandledExceptionFilter2(PEXCEPTION_POINTERS pExceptionInfo);
 | |
| 	static void STF(unsigned int ui,  PEXCEPTION_POINTERS pEp);
 | |
| 	//BBS set crash log folder
 | |
| 	static void set_log_folder(std::string log_folder);
 | |
| protected:
 | |
| 	PEXCEPTION_POINTERS m_pEp;
 | |
| 	boost::nowide::ofstream *output_file;
 | |
| };
 | |
| 
 | |
| #define SET_DEFULTER_HANDLER() SetUnhandledExceptionFilter(CBaseException::UnhandledExceptionFilter)
 | |
| 
 | |
| #define SET_DEFAUL_EXCEPTION() _set_se_translator(CBaseException::STF) | 
