Added kernel debugger help (type help for a list of commands)
authorCasper Hornstrup <chorns@users.sourceforge.net>
Sun, 22 Apr 2001 14:47:00 +0000 (14:47 +0000)
committerCasper Hornstrup <chorns@users.sourceforge.net>
Sun, 22 Apr 2001 14:47:00 +0000 (14:47 +0000)
svn path=/trunk/; revision=1817

reactos/ntoskrnl/dbg/kdb.c

index e2c3273..6853ab7 100644 (file)
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: kdb.c,v 1.3 2001/04/16 02:02:03 dwelch Exp $
+/* $Id: kdb.c,v 1.4 2001/04/22 14:47:00 chorns Exp $
  *
  * PROJECT:         ReactOS kernel
  * FILE:            ntoskrnl/dbg/kdb.c
@@ -56,20 +56,25 @@ ULONG
 DbgBackTraceCommand(ULONG Argc, PCH Argv[], PKTRAP_FRAME Tf);
 ULONG
 DbgProcessListCommand(ULONG Argc, PCH Argv[], PKTRAP_FRAME Tf);
+ULONG
+DbgProcessHelpCommand(ULONG Argc, PCH Argv[], PKTRAP_FRAME Tf);
 
 struct
 {
   PCH Name;
+  PCH Syntax;
+  PCH Help;
   ULONG (*Fn)(ULONG Argc, PCH Argv[], PKTRAP_FRAME Tf);
 } DebuggerCommands[] = {
-  {"cont", DbgContCommand},
-  {"regs", DbgRegsCommand},
-  {"dregs", DbgDRegsCommand},
-  {"cregs", DbgCRegsCommand},
-  {"bugcheck", DbgBugCheckCommand},
-  {"bt", DbgBackTraceCommand},
-  {"plist", DbgProcessListCommand},
-  {NULL, NULL}
+  {"cont", "cont", "Exit the debugger", DbgContCommand},
+  {"regs", "regs", "Display general purpose registers", DbgRegsCommand},
+  {"dregs", "dregs", "Display debug registers", DbgDRegsCommand},
+  {"cregs", "cregs", "Display control registers", DbgCRegsCommand},
+  {"bugcheck", "bugcheck", "Bugcheck the system", DbgBugCheckCommand},
+  {"bt", "bt [*frame-address]|[thread-id]","Do a backtrace", DbgBackTraceCommand},
+  {"plist", "plist", "Display processes in the system", DbgProcessListCommand},
+  {"help", "help", "Display help screen", DbgProcessHelpCommand},
+  {NULL, NULL, NULL}
 };
 
 /* FUNCTIONS *****************************************************************/
@@ -183,6 +188,28 @@ KdbGetCommand(PCH Buffer)
     }
 }
 
+ULONG
+DbgProcessHelpCommand(ULONG Argc, PCH Argv[], PKTRAP_FRAME Tf)
+{
+  ULONG i, j, len;
+
+  DbgPrint("Kernel debugger commands:\n");
+  for (i = 0; DebuggerCommands[i].Name != NULL; i++)
+    {
+      DbgPrint("  %s", DebuggerCommands[i].Syntax);
+      len = strlen(DebuggerCommands[i].Syntax);
+      if (len < 35)
+        {
+          for (j = 0; j < 35 - len; j++)
+          {
+            DbgPrint(" ");
+          }
+        }
+      DbgPrint(" - %s\n", DebuggerCommands[i].Help);
+    }
+  return(1);
+}
+
 ULONG
 DbgProcessListCommand(ULONG Argc, PCH Argv[], PKTRAP_FRAME Tf)
 {
@@ -584,7 +611,7 @@ KdbMainLoop(PKTRAP_FRAME Tf)
   CHAR Command[256];
   ULONG s;
 
-  DbgPrint("\n");
+  DbgPrint("\nEntered kernel debugger (type \"help\" for a list of commands)\n");
   do
     {
       DbgPrint("kdb:> ");