mirror of
https://github.com/TTimo/GtkRadiant.git
synced 2025-01-10 03:51:18 +00:00
MiniDump for msvc
This commit is contained in:
parent
f7f0f1d433
commit
57daf1d8c5
2 changed files with 75 additions and 5 deletions
|
@ -414,7 +414,7 @@ void error_redirect( const gchar *domain, GLogLevelFlags log_level, const gchar
|
||||||
#define GETTEXT_PACKAGE "radiant"
|
#define GETTEXT_PACKAGE "radiant"
|
||||||
#define LOCALEDIR "lang"
|
#define LOCALEDIR "lang"
|
||||||
|
|
||||||
int main( int argc, char* argv[] ) {
|
int mainRadiant( int argc, char* argv[] ) {
|
||||||
const char *libgl;
|
const char *libgl;
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
|
|
||||||
|
@ -923,6 +923,76 @@ int main( int argc, char* argv[] ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if defined( _WIN32 ) && defined( _MSC_VER )
|
||||||
|
#include <dbghelp.h>
|
||||||
|
#include <shellapi.h>
|
||||||
|
#include <shlobj.h>
|
||||||
|
#include <strsafe.h> //StringCchPrintf
|
||||||
|
|
||||||
|
int GenerateDump( EXCEPTION_POINTERS* pExceptionPointers ) {
|
||||||
|
BOOL bMiniDumpSuccessful;
|
||||||
|
char szPath[MAX_PATH];
|
||||||
|
char szFileName[MAX_PATH];
|
||||||
|
char szAppName[] = "GTKRadiant";
|
||||||
|
char* szVersion = RADIANT_VERSION;
|
||||||
|
DWORD dwBufferSize = MAX_PATH;
|
||||||
|
HANDLE hDumpFile;
|
||||||
|
SYSTEMTIME stLocalTime;
|
||||||
|
MINIDUMP_EXCEPTION_INFORMATION ExpParam;
|
||||||
|
|
||||||
|
GetLocalTime( &stLocalTime );
|
||||||
|
GetTempPath( dwBufferSize, szPath );
|
||||||
|
|
||||||
|
StringCchPrintf( szFileName, MAX_PATH, "%s%s", szPath, szAppName );
|
||||||
|
CreateDirectory( szFileName, NULL );
|
||||||
|
|
||||||
|
StringCchPrintf( szFileName, MAX_PATH, "%s%s\\%s-%s-%04d%02d%02d-%02d%02d%02d.dmp",
|
||||||
|
szPath, szAppName, szAppName, szVersion,
|
||||||
|
stLocalTime.wYear, stLocalTime.wMonth, stLocalTime.wDay,
|
||||||
|
stLocalTime.wHour, stLocalTime.wMinute, stLocalTime.wSecond );
|
||||||
|
hDumpFile = CreateFile(szFileName, GENERIC_READ|GENERIC_WRITE,
|
||||||
|
FILE_SHARE_WRITE|FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0);
|
||||||
|
|
||||||
|
ExpParam.ThreadId = GetCurrentThreadId();
|
||||||
|
ExpParam.ExceptionPointers = pExceptionPointers;
|
||||||
|
ExpParam.ClientPointers = TRUE;
|
||||||
|
|
||||||
|
bMiniDumpSuccessful = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),
|
||||||
|
hDumpFile, MiniDumpWithDataSegs, &ExpParam, NULL, NULL);
|
||||||
|
|
||||||
|
return EXCEPTION_EXECUTE_HANDLER;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int main( int argc, char* argv[] ) {
|
||||||
|
|
||||||
|
#if defined( _WIN32 ) && defined( _MSC_VER )
|
||||||
|
__try {
|
||||||
|
return mainRadiant( argc, argv );
|
||||||
|
} __except( GenerateDump( GetExceptionInformation() ) ) {
|
||||||
|
|
||||||
|
char szPath[MAX_PATH];
|
||||||
|
char szText[MAX_PATH];
|
||||||
|
char szFileName[MAX_PATH];
|
||||||
|
char szAppName[] = "GTKRadiant";
|
||||||
|
SYSTEMTIME stLocalTime;
|
||||||
|
DWORD dwBufferSize = MAX_PATH;
|
||||||
|
|
||||||
|
GetLocalTime( &stLocalTime );
|
||||||
|
GetTempPath( dwBufferSize, szPath );
|
||||||
|
|
||||||
|
StringCchPrintf( szFileName, MAX_PATH, "%s%s", szPath, szAppName );
|
||||||
|
|
||||||
|
StringCchPrintf( szText, MAX_PATH, _("Application crashed!\nCreated a dump file in: \n%s"), szFileName );
|
||||||
|
|
||||||
|
MessageBox( NULL, szText, NULL, MB_ICONERROR );
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
return mainRadiant( argc, argv );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
// ydnar: quick and dirty fix, just make the buffer bigger
|
// ydnar: quick and dirty fix, just make the buffer bigger
|
||||||
#define BIG_PATH_MAX 4096
|
#define BIG_PATH_MAX 4096
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalDependencies>Ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;pango-1.0.lib;pangoft2-1.0.lib;gdkglext-win32-1.0.lib;gtkglext-win32-1.0.lib;libxml2_a.lib;mathlib.lib;synapse.lib;l_net.lib;cmdlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;pango-1.0.lib;pangoft2-1.0.lib;gdkglext-win32-1.0.lib;gtkglext-win32-1.0.lib;libxml2_a.lib;mathlib.lib;synapse.lib;l_net.lib;cmdlib.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.2/win32/bin.msvc;$(SolutionDir)\..\gtkglext-1.2.0\lib;$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.2/win32/bin.msvc;$(SolutionDir)\..\gtkglext-1.2.0\lib;$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalDependencies>Ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;pango-1.0.lib;pangoft2-1.0.lib;gdkglext-win32-1.0.lib;gtkglext-win32-1.0.lib;libxml2_a.lib;mathlib.lib;synapse.lib;l_net.lib;cmdlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;pango-1.0.lib;pangoft2-1.0.lib;gdkglext-win32-1.0.lib;gtkglext-win32-1.0.lib;libxml2_a.lib;mathlib.lib;synapse.lib;l_net.lib;cmdlib.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.2/win32/bin.msvc;$(SolutionDir)\..\gtkglext-1.2.0\lib;$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.2/win32/bin.msvc;$(SolutionDir)\..\gtkglext-1.2.0\lib;$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalDependencies>Ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;pango-1.0.lib;pangoft2-1.0.lib;gdkglext-win32-1.0.lib;gtkglext-win32-1.0.lib;libxml2_a.lib;mathlib.lib;synapse.lib;l_net.lib;cmdlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;pango-1.0.lib;pangoft2-1.0.lib;gdkglext-win32-1.0.lib;gtkglext-win32-1.0.lib;libxml2_a.lib;mathlib.lib;synapse.lib;l_net.lib;cmdlib.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.2/win32/bin.msvc;$(SolutionDir)\..\gtkglext-1.2.0\lib;$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.2/win32/bin.msvc;$(SolutionDir)\..\gtkglext-1.2.0\lib;$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
|
@ -146,7 +146,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AdditionalDependencies>Ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;pango-1.0.lib;pangoft2-1.0.lib;gdkglext-win32-1.0.lib;gtkglext-win32-1.0.lib;libxml2_a.lib;mathlib.lib;synapse.lib;l_net.lib;cmdlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;gdk-win32-2.0.lib;pango-1.0.lib;pangoft2-1.0.lib;gdkglext-win32-1.0.lib;gtkglext-win32-1.0.lib;libxml2_a.lib;mathlib.lib;synapse.lib;l_net.lib;cmdlib.lib;Dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.2/win32/bin.msvc;$(SolutionDir)\..\gtkglext-1.2.0\lib;$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.2/win32/bin.msvc;$(SolutionDir)\..\gtkglext-1.2.0\lib;$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
|
|
Loading…
Reference in a new issue