https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1b25fe161caff2806f47b…
commit 1b25fe161caff2806f47b31f4d467d16861ba648
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Nov 27 19:11:29 2022 +0100
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Fri Jan 6 14:44:49 2023 +0100
[KERNEL32][NTOS:PS][RTL] Cleanup some DbgPrompt() calls.
---
dll/win32/kernel32/client/proc.c | 9 ++++-----
ntoskrnl/ps/kill.c | 13 +++++--------
sdk/lib/rtl/assert.c | 38 ++++++++++++--------------------------
3 files changed, 21 insertions(+), 39 deletions(-)
diff --git a/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c
index d2e38355ddd..22f29ca4bba 100644
--- a/dll/win32/kernel32/client/proc.c
+++ b/dll/win32/kernel32/client/proc.c
@@ -1625,14 +1625,13 @@ FatalExit(IN int ExitCode)
{
#if DBG
/* On Checked builds, Windows gives the user a nice little debugger UI */
- CHAR ch[2];
- DbgPrint("FatalExit...\n");
- DbgPrint("\n");
+ CHAR Action[2];
+ DbgPrint("FatalExit...\n\n");
while (TRUE)
{
- DbgPrompt( "A (Abort), B (Break), I (Ignore)? ", ch, sizeof(ch));
- switch (ch[0])
+ DbgPrompt("A (Abort), B (Break), I (Ignore)? ", Action,
sizeof(Action));
+ switch (Action[0])
{
case 'B': case 'b':
DbgBreakPoint();
diff --git a/ntoskrnl/ps/kill.c b/ntoskrnl/ps/kill.c
index 115768687c4..4a746492486 100644
--- a/ntoskrnl/ps/kill.c
+++ b/ntoskrnl/ps/kill.c
@@ -42,23 +42,20 @@ PspCatchCriticalBreak(IN PCHAR Message,
/* If a debugger isn't present, don't prompt */
if (KdDebuggerNotPresent) break;
- /* A debuger is active, prompt for action */
- DbgPrompt("Break, or Ignore (bi)?", Action, sizeof(Action));
+ /* A debugger is active, prompt for action */
+ DbgPrompt("Break, or Ignore (bi)? ", Action, sizeof(Action));
switch (Action[0])
{
/* Break */
case 'B': case 'b':
-
- /* Do a breakpoint */
DbgBreakPoint();
+ /* Fall through */
- /* Ignore */
+ /* Ignore: Handle it */
case 'I': case 'i':
-
- /* Handle it */
Handled = TRUE;
- /* Unrecognized */
+ /* Unrecognized: Prompt again */
default:
break;
}
diff --git a/sdk/lib/rtl/assert.c b/sdk/lib/rtl/assert.c
index 0c6fcaeeefe..6f4facb6239 100644
--- a/sdk/lib/rtl/assert.c
+++ b/sdk/lib/rtl/assert.c
@@ -43,52 +43,38 @@ RtlAssert(IN PVOID FailedAssertion,
LineNumber);
/* Prompt for action */
- DbgPrompt("Break repeatedly, break Once, Ignore,"
- " terminate Process or terminate Thread (boipt)? ",
+ DbgPrompt("Break repeatedly, break Once, Ignore, "
+ "terminate Process or terminate Thread (boipt)? ",
Action,
sizeof(Action));
switch (Action[0])
{
- /* Break repeatedly */
+ /* Break repeatedly / Break once */
case 'B': case 'b':
-
- /* Do a breakpoint, then prompt again */
+ case 'O': case 'o':
DbgPrint("Execute '.cxr %p' to dump context\n",
&Context);
+ /* Do a breakpoint, then prompt again or return */
DbgBreakPoint();
- break;
+ if ((Action[0] == 'B') || (Action[0] == 'b'))
+ break;
+ /* else ('O','o'): fall through */
- /* Ignore */
+ /* Ignore: Return to caller */
case 'I': case 'i':
-
- /* Return to caller */
return;
- /* Break once */
- case 'O': case 'o':
-
- /* Do a breakpoint and return */
- DbgPrint("Execute '.cxr %p' to dump context\n",
&Context);
- DbgBreakPoint();
- return;
-
- /* Terminate process*/
+ /* Terminate current process */
case 'P': case 'p':
-
- /* Terminate us */
ZwTerminateProcess(ZwCurrentProcess(), STATUS_UNSUCCESSFUL);
break;
- /* Terminate thread */
+ /* Terminate current thread */
case 'T': case 't':
-
- /* Terminate us */
ZwTerminateThread(ZwCurrentThread(), STATUS_UNSUCCESSFUL);
break;
- /* Unrecognized */
+ /* Unrecognized: Prompt again */
default:
-
- /* Prompt again */
break;
}
}