diff options
-rw-r--r-- | hw/xwin/InitOutput.c | 6 | ||||
-rwxr-xr-x | hw/xwin/XWin.exe.manifest | 2 | ||||
-rw-r--r-- | hw/xwin/winerror.c | 2 | ||||
-rw-r--r-- | hw/xwin/winmultiwindowwm.c | 2 | ||||
-rw-r--r-- | hw/xwin/winprocarg.c | 3 | ||||
-rw-r--r-- | include/os.h | 3 | ||||
-rw-r--r-- | os/backtrace.c | 7 | ||||
-rw-r--r-- | os/osinit.c | 2 | ||||
-rw-r--r-- | os/xdmcp.c | 7 |
9 files changed, 26 insertions, 8 deletions
diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c index d26ebb0bf..a7773c5b8 100644 --- a/hw/xwin/InitOutput.c +++ b/hw/xwin/InitOutput.c @@ -219,7 +219,7 @@ ddxGiveUp(enum ExitCode error) #endif if (!g_fLogInited) { - g_pszLogFile = LogInit(g_pszLogFile, NULL); + g_pszLogFile = LogInit(g_pszLogFile, ".old"); g_fLogInited = TRUE; } LogClose(error); @@ -662,7 +662,7 @@ OsVendorInit(void) * avoid the second call */ g_fLogInited = TRUE; - g_pszLogFile = LogInit(g_pszLogFile, NULL); + g_pszLogFile = LogInit(g_pszLogFile, ".old"); } LogSetParameter(XLOG_FLUSH, 1); LogSetParameter(XLOG_VERBOSITY, g_iLogVerbose); @@ -904,7 +904,7 @@ ddxUseMsg(void) /* Log file will not be opened for UseMsg unless we open it now */ if (!g_fLogInited) { - g_pszLogFile = LogInit(g_pszLogFile, NULL); + g_pszLogFile = LogInit(g_pszLogFile, ".old"); g_fLogInited = TRUE; } LogClose(EXIT_NO_ERROR); diff --git a/hw/xwin/XWin.exe.manifest b/hw/xwin/XWin.exe.manifest index ea0e138f5..bd44b1066 100755 --- a/hw/xwin/XWin.exe.manifest +++ b/hw/xwin/XWin.exe.manifest @@ -28,6 +28,8 @@ <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <!-- Windows 8.1 --> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> + <!-- Windows 10 --> + <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> </application> </compatibility> </assembly> diff --git a/hw/xwin/winerror.c b/hw/xwin/winerror.c index ff2919c27..47ac20246 100644 --- a/hw/xwin/winerror.c +++ b/hw/xwin/winerror.c @@ -85,7 +85,7 @@ OsVendorFatalError(const char *f, va_list args) if (!g_fLogInited) { g_fLogInited = TRUE; - g_pszLogFile = LogInit(g_pszLogFile, NULL); + g_pszLogFile = LogInit(g_pszLogFile, ".old"); } LogClose(EXIT_ERR_ABORT); diff --git a/hw/xwin/winmultiwindowwm.c b/hw/xwin/winmultiwindowwm.c index 62edb7fa9..9bee66953 100644 --- a/hw/xwin/winmultiwindowwm.c +++ b/hw/xwin/winmultiwindowwm.c @@ -1617,9 +1617,7 @@ winMultiWindowXMsgProcErrorHandler(Display * pDisplay, XErrorEvent * pErr) char pszErrorMsg[100]; XGetErrorText(pDisplay, pErr->error_code, pszErrorMsg, sizeof(pszErrorMsg)); -#if CYGMULTIWINDOW_DEBUG ErrorF("winMultiWindowXMsgProcErrorHandler - ERROR: %s\n", pszErrorMsg); -#endif return 0; } diff --git a/hw/xwin/winprocarg.c b/hw/xwin/winprocarg.c index f678f6188..0a8337482 100644 --- a/hw/xwin/winprocarg.c +++ b/hw/xwin/winprocarg.c @@ -1213,6 +1213,9 @@ winOS(void) if (osvi.dwMajorVersion <= 4) prodName = "Windows NT"; else if (osvi.dwMajorVersion == 6) { + if (osvi.dwMinorVersion == 4) { + prodName = "Windows 10"; + } if (osvi.dwMinorVersion == 3) { if (osvi.wProductType == VER_NT_WORKSTATION) prodName = "Windows 8.1"; diff --git a/include/os.h b/include/os.h index 435f556aa..63b9df9af 100644 --- a/include/os.h +++ b/include/os.h @@ -690,6 +690,9 @@ LogPrintMarkers(void); extern _X_EXPORT void xorg_backtrace(void); +extern _X_EXPORT void +xorg_crashreport(void); + extern _X_EXPORT int os_move_fd(int fd); diff --git a/os/backtrace.c b/os/backtrace.c index fcc8274e4..c11552125 100644 --- a/os/backtrace.c +++ b/os/backtrace.c @@ -369,6 +369,13 @@ xorg_backtrace(void) return; } +/* Cygwin-specific reporter script which uses exec_wrapper */ +void +xorg_crashreport(void) +{ + return xorg_backtrace_exec_wrapper(BINDIR "/xorg-crashreport"); +} + #endif #endif #endif diff --git a/os/osinit.c b/os/osinit.c index 2791b53f2..c59b94bed 100644 --- a/os/osinit.c +++ b/os/osinit.c @@ -144,6 +144,8 @@ OsSigHandler(int signo) /* log, cleanup, and abort */ xorg_backtrace(); + xorg_crashreport(); + FatalError("Caught signal %d (%s). Server aborting\n", signo, strsignal(signo)); } diff --git a/os/xdmcp.c b/os/xdmcp.c index 99616d94b..c5204adfb 100644 --- a/os/xdmcp.c +++ b/os/xdmcp.c @@ -1409,8 +1409,11 @@ recv_alive_msg(unsigned length) static void XdmcpFatal(const char *type, ARRAY8Ptr status) { - FatalError("XDMCP fatal error: %s %*.*s\n", type, - status->length, status->length, status->data); + char *text = malloc(status->length + 1); + strncpy(text, status->data, status->length); + text[status->length] = 0; + FatalError("XDMCP fatal error: %s %s\n", type, text); + free(text); } static void |