| 
									
										
										
										
											2009-03-28 08:57:34 +00:00
										 |  |  | // -----------------------------------------------------------------------------------------
 | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | //
 | 
					
						
							|  |  |  | // Written by Zoltan Csizmadia, zoltan_csizmadia@yahoo.com
 | 
					
						
							|  |  |  | // For companies(Austin,TX): If you would like to get my resume, send an email.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // The source is free, but if you want to use it, mention my name and e-mail address
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // History:
 | 
					
						
							|  |  |  | //    1.0      Initial version                  Zoltan Csizmadia
 | 
					
						
							|  |  |  | //    1.1      WhineCube version                Masken
 | 
					
						
							|  |  |  | //    1.2      Dolphin version                  Masken
 | 
					
						
							|  |  |  | //
 | 
					
						
							| 
									
										
										
										
											2009-03-28 08:57:34 +00:00
										 |  |  | // ----------------------------------------------------------------------------------------
 | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #if defined(WIN32)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <windows.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <string>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma comment( lib, "imagehlp.lib" )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #define EXTENDEDTRACEINITIALIZE( IniSymbolPath ) InitSymInfo( IniSymbolPath )
 | 
					
						
							|  |  |  | #define EXTENDEDTRACEUNINITIALIZE()              UninitSymInfo()
 | 
					
						
							|  |  |  | #define STACKTRACE(file)                         StackTrace( GetCurrentThread(), "", file)
 | 
					
						
							| 
									
										
										
										
											2013-02-27 18:51:02 -06:00
										 |  |  | #define STACKTRACE2(file, eip, esp, ebp) StackTrace(GetCurrentThread(), "", file, eip, esp, ebp)
 | 
					
						
							| 
									
										
										
										
											2009-03-28 08:57:34 +00:00
										 |  |  | // class File;
 | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | BOOL InitSymInfo( PCSTR ); | 
					
						
							|  |  |  | BOOL UninitSymInfo(); | 
					
						
							| 
									
										
										
										
											2013-02-27 18:51:02 -06:00
										 |  |  | void StackTrace(HANDLE, char const* msg, FILE *file); | 
					
						
							|  |  |  | void StackTrace(HANDLE, char const* msg, FILE *file, DWORD eip, DWORD esp, DWORD ebp); | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-28 08:57:34 +00:00
										 |  |  | // functions by Masken
 | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | void etfprintf(FILE *file, const char *format, ...); | 
					
						
							|  |  |  | void etfprint(FILE *file, const std::string &text); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #else // not WIN32
 | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #define EXTENDEDTRACEINITIALIZE( IniSymbolPath ) ((void)0)
 | 
					
						
							|  |  |  | #define EXTENDEDTRACEUNINITIALIZE()              ((void)0)
 | 
					
						
							|  |  |  | #define STACKTRACE(file)                         ((void)0)
 | 
					
						
							|  |  |  | #define STACKTRACE2(file, eip, esp, ebp)         ((void)0)
 | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #endif // WIN32
 | 
					
						
							| 
									
										
										
										
											2009-01-09 00:09:07 +00:00
										 |  |  | 
 |