diff --git a/polymer/eduke32/Makefile b/polymer/eduke32/Makefile index 1561c3bb1..10f35465b 100644 --- a/polymer/eduke32/Makefile +++ b/polymer/eduke32/Makefile @@ -435,7 +435,7 @@ endif $(EBACKTRACEDLL): platform/Windows/src/backtrace.c $(COMPILE_STATUS) - if $(CC) $(OURCONLYFLAGS) -O2 -shared -Wall -Wextra -static-libgcc -I$(EINC) -o $@ $^ -lbfd -liberty -limagehlp; then $(COMPILE_OK); else $(COMPILE_FAILED); fi + if $(CC) $(OURCONLYFLAGS) -O2 -ggdb -shared -Wall -Wextra -static-libgcc -I$(EINC) -o $@ $^ -lbfd -liberty -limagehlp; then $(COMPILE_OK); else $(COMPILE_FAILED); fi $(OBJ)/%.$o: $(SRC)/%.nasm $(COMPILE_STATUS) diff --git a/polymer/eduke32/package/debug/win32/ebacktrace1.dll b/polymer/eduke32/package/debug/win32/ebacktrace1.dll index f2e62a4fc..f684cb188 100644 Binary files a/polymer/eduke32/package/debug/win32/ebacktrace1.dll and b/polymer/eduke32/package/debug/win32/ebacktrace1.dll differ diff --git a/polymer/eduke32/package/debug/win64/ebacktrace1-64.dll b/polymer/eduke32/package/debug/win64/ebacktrace1-64.dll index ac75a6cdf..919bbe471 100644 Binary files a/polymer/eduke32/package/debug/win64/ebacktrace1-64.dll and b/polymer/eduke32/package/debug/win64/ebacktrace1-64.dll differ diff --git a/polymer/eduke32/platform/Windows/src/backtrace.c b/polymer/eduke32/platform/Windows/src/backtrace.c index 38e37acc3..e16bb4931 100644 --- a/polymer/eduke32/platform/Windows/src/backtrace.c +++ b/polymer/eduke32/platform/Windows/src/backtrace.c @@ -348,7 +348,7 @@ _backtrace(struct output_buffer *ob, struct bfd_set *set, int depth , LPCONTEXT } static char * g_output = NULL; -static LPTOP_LEVEL_EXCEPTION_FILTER g_prev = NULL; +static PVOID g_prev = NULL; static LONG WINAPI exception_filter(LPEXCEPTION_POINTERS info) @@ -403,7 +403,7 @@ backtrace_register(void) { if (g_output == NULL) { g_output = malloc(BUFFER_MAX); - g_prev = SetUnhandledExceptionFilter(exception_filter); + g_prev = AddVectoredExceptionHandler(1, exception_filter); } } @@ -412,7 +412,7 @@ backtrace_unregister(void) { if (g_output) { free(g_output); - SetUnhandledExceptionFilter(g_prev); + RemoveVectoredExceptionHandler(g_prev); g_prev = NULL; g_output = NULL; }