]> git.sesse.net Git - vlc/commitdiff
Win32: display stacktrace before modules list
authorJean-Baptiste Kempf <jb@videolan.org>
Thu, 23 Aug 2012 14:01:27 +0000 (16:01 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Thu, 23 Aug 2012 14:01:27 +0000 (16:01 +0200)
bin/winvlc.c

index 9db5df158be386128d8b4e5c140db424bdacb748..ff50a003f58b77be90862408476f3dc54c631b23 100644 (file)
@@ -357,23 +357,6 @@ LONG WINAPI vlc_exception_filter(struct _EXCEPTION_POINTERS *lpExceptionInfo)
                         pContext->Ebp,pContext->Eip,pContext->Esp );
 #endif
 
-        HANDLE hpid = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
-                                        FALSE, GetCurrentProcessId());
-        if (hpid) {
-            HMODULE mods[1024];
-            DWORD size;
-            if (EnumProcessModules(hpid, mods, sizeof(mods), &size)) {
-                fwprintf( fd, L"\n\n[modules]\n" );
-                for (unsigned int i = 0; i < size / sizeof(HMODULE); i++) {
-                    wchar_t module[ 256 ];
-                    GetModuleFileName(mods[i], module, 256);
-                    fwprintf( fd, L"%p|%s\n", mods[i], module);
-                }
-            }
-            CloseHandle(hpid);
-        }
-
-
         fwprintf( fd, L"\n[stacktrace]\n#EIP|base|module\n" );
 
 #ifdef WIN64
@@ -398,6 +381,22 @@ LONG WINAPI vlc_exception_filter(struct _EXCEPTION_POINTERS *lpExceptionInfo)
             pBase = *pBase;
         }
 
+        HANDLE hpid = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
+                                        FALSE, GetCurrentProcessId());
+        if (hpid) {
+            HMODULE mods[1024];
+            DWORD size;
+            if (EnumProcessModules(hpid, mods, sizeof(mods), &size)) {
+                fwprintf( fd, L"\n\n[modules]\n" );
+                for (unsigned int i = 0; i < size / sizeof(HMODULE); i++) {
+                    wchar_t module[ 256 ];
+                    GetModuleFileName(mods[i], module, 256);
+                    fwprintf( fd, L"%p|%s\n", mods[i], module);
+                }
+            }
+            CloseHandle(hpid);
+        }
+
         fclose( fd );
         fflush( stderr );
         exit( 1 );