From 8f3b6120b248c470935ab39be0de21038edc4405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 13 Nov 2015 19:56:22 +0000 Subject: [PATCH] [CSRSRV][CONSRV][USERSRV]: Display complementary redundant information to try to understand problems in CORE-9742 and CORE-10510 (any discrepancy in the redundant info should be the sign of some corruption). svn path=/trunk/; revision=69881 --- reactos/subsystems/win32/csrsrv/thredsup.c | 6 ++++-- .../user/winsrv/consrv/frontends/gui/guiterm.c | 14 ++++++++++---- reactos/win32ss/user/winsrv/usersrv/shutdown.c | 5 +++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/reactos/subsystems/win32/csrsrv/thredsup.c b/reactos/subsystems/win32/csrsrv/thredsup.c index 0cc314cc2d5..00e47d916c7 100644 --- a/reactos/subsystems/win32/csrsrv/thredsup.c +++ b/reactos/subsystems/win32/csrsrv/thredsup.c @@ -440,8 +440,10 @@ CsrThreadRefcountZero(IN PCSR_THREAD CsrThread) Status = NtClose(CsrThread->ThreadHandle); if (!NT_SUCCESS(Status)) - DPRINT1("CSR: NtClose failed, we are going to ASSERT, Status = 0x%08lx; [0x%x, 0x%x] Process: 0x%p; ThreadHandle: 0x%p\n", - Status, CsrThread->ClientId.UniqueProcess, CsrThread->ClientId.UniqueThread, CsrProcess, CsrThread->ThreadHandle); + DPRINT1("CSR: NtClose failed, we are going to ASSERT, Status = 0x%08lx; P:[0x%x, 0x%x] T:[0x%x, 0x%x] Process: 0x%p; Thread: 0x%p; ThreadHandle: 0x%p\n", + Status, CsrProcess->ClientId.UniqueProcess, CsrProcess->ClientId.UniqueThread, + CsrThread->ClientId.UniqueProcess, CsrThread->ClientId.UniqueThread, + CsrProcess, CsrThread, CsrThread->ThreadHandle); ASSERT(NT_SUCCESS(Status)); } diff --git a/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c b/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c index 4aff1bbf460..1c8682bb9a1 100644 --- a/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c +++ b/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c @@ -169,17 +169,23 @@ GuiConsoleInputThread(PVOID Param) /* Connect this CSR thread to the USER subsystem */ { PCSR_THREAD CurrThread = CsrGetClientThread(); + PCSR_PROCESS CsrProcess; - DPRINT1("CsrConnectToUser being called; [0x%x, 0x%x]...\n", - CurrThread->ClientId.UniqueProcess, CurrThread->ClientId.UniqueThread); + DPRINT1("CsrConnectToUser being called; 0x%p [0x%x, 0x%x]...\n", + CurrThread, (CurrThread ? CurrThread->ClientId.UniqueProcess : (ULONG_PTR)-1), (CurrThread ? CurrThread->ClientId.UniqueThread : (ULONG_PTR)-1)); pcsrt = CsrConnectToUser(); if (pcsrt == NULL) goto Quit; hThread = pcsrt->ThreadHandle; - DPRINT1("CsrConnectToUser was successfully called; [0x%x, 0x%x] -- hThread = 0x%p, pcsrt->Process = 0x%p; pcsrt->ThreadHandle = 0x%p from [0x%x, 0x%x]\n", + CurrThread = CsrGetClientThread(); + CsrProcess = CurrThread->Process; + + DPRINT1("CsrConnectToUser was successfully called; P:[0x%x, 0x%x] T:[0x%x, 0x%x] Process: 0x%p; Thread: 0x%p -- hThread = 0x%p, pcsrt = 0x%p; pcsrt->Process = 0x%p; pcsrt->ThreadHandle = 0x%p from [0x%x, 0x%x]\n", + CsrProcess->ClientId.UniqueProcess, CsrProcess->ClientId.UniqueThread, CurrThread->ClientId.UniqueProcess, CurrThread->ClientId.UniqueThread, - hThread, pcsrt->Process, pcsrt->ThreadHandle, + CsrProcess, CurrThread, + hThread, pcsrt, pcsrt->Process, pcsrt->ThreadHandle, pcsrt->ClientId.UniqueProcess, pcsrt->ClientId.UniqueThread); } diff --git a/reactos/win32ss/user/winsrv/usersrv/shutdown.c b/reactos/win32ss/user/winsrv/usersrv/shutdown.c index 2ba05c48d9e..f95dafefd40 100644 --- a/reactos/win32ss/user/winsrv/usersrv/shutdown.c +++ b/reactos/win32ss/user/winsrv/usersrv/shutdown.c @@ -755,8 +755,9 @@ UserClientShutdown(IN PCSR_PROCESS CsrProcess, IN ULONG Flags, IN BOOLEAN FirstPhase) { - DPRINT1("UserClientShutdown(0x%p, 0x%x, %s)\n", - CsrProcess, Flags, FirstPhase ? "FirstPhase" : "LastPhase"); + DPRINT1("UserClientShutdown(0x%p, 0x%x, %s) - [0x%x, 0x%x]\n", + CsrProcess, Flags, FirstPhase ? "FirstPhase" : "LastPhase", + CsrProcess->ClientId.UniqueProcess, CsrProcess->ClientId.UniqueThread); /* * Check for process validity