Introduced DBG_VALUE struct to manipulate debugger/debuggee address space.
Added watch (hardware assisted debugging) and whatis (type of expr) commands.
Fixed some issues in local vars handling (stabs parsing & registers optimization).

diff --git a/debugger/display.c b/debugger/display.c
index 431a289..80926f9 100644
--- a/debugger/display.c
+++ b/debugger/display.c
@@ -49,7 +49,7 @@
 }
 
 int
-DEBUG_InfoDisplay()
+DEBUG_InfoDisplay(void)
 {
   int i;
 
@@ -70,10 +70,10 @@
 }
 
 int
-DEBUG_DoDisplay()
+DEBUG_DoDisplay(void)
 {
-  DBG_ADDR	addr;
-  int i;
+  DBG_VALUE	value;
+  int		i;
 
   /*
    * First find a slot where we can store this display.
@@ -82,8 +82,8 @@
     {
       if( displaypoints[i].exp != NULL )
 	{
-	  addr = DEBUG_EvalExpr(displaypoints[i].exp);
-	  if( addr.type == NULL )
+	  value = DEBUG_EvalExpr(displaypoints[i].exp);
+	  if( value.type == NULL )
 	    {
 	      fprintf(stderr, "Unable to evaluate expression ");
 	      DEBUG_DisplayExpr(displaypoints[i].exp);
@@ -97,13 +97,13 @@
 	      fprintf(stderr, " = ");
 	      if( displaypoints[i].format == 'i' )
 		{
-		  DEBUG_ExamineMemory( &addr, 
-			       displaypoints[i].count, 
-			       displaypoints[i].format);
+		  DEBUG_ExamineMemory( &value, 
+				       displaypoints[i].count, 
+				       displaypoints[i].format);
 		}
 	      else
 		{
-		  DEBUG_Print( &addr, 
+		  DEBUG_Print( &value, 
 			       displaypoints[i].count, 
 			       displaypoints[i].format, 0);
 		}