mirror of
https://github.com/videolan/vlc.git
synced 2024-12-12 03:06:13 +08:00
winvlc: include address space layout in crash reports
Will help to 'undo' ASLR and make those reports useful
This commit is contained in:
parent
1cbf94aef5
commit
98f09b5dd8
@ -45,7 +45,7 @@ vlc_static_LDADD = $(vlc_LDADD)
|
||||
vlc_static_LDFLAGS = $(vlc_LDFLAGS)
|
||||
|
||||
if HAVE_WIN32
|
||||
vlc_LDADD += -lwininet vlc_win32_rc.$(OBJEXT)
|
||||
vlc_LDADD += -lpsapi -lwininet vlc_win32_rc.$(OBJEXT)
|
||||
vlc_DEPENDENCIES = vlc_win32_rc.$(OBJEXT)
|
||||
else
|
||||
vlc_LDADD += $(LIBDL)
|
||||
|
19
bin/winvlc.c
19
bin/winvlc.c
@ -38,6 +38,8 @@
|
||||
# endif
|
||||
# include <shlobj.h>
|
||||
# include <wininet.h>
|
||||
# define PSAPI_VERSION 1
|
||||
# include <psapi.h>
|
||||
# define HeapEnableTerminationOnCorruption (HEAP_INFORMATION_CLASS)1
|
||||
static void check_crashdump(void);
|
||||
LONG WINAPI vlc_exception_filter(struct _EXCEPTION_POINTERS *lpExceptionInfo);
|
||||
@ -343,6 +345,23 @@ 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
|
||||
|
Loading…
Reference in New Issue
Block a user