Added a possibility to let the internal debugger use a separate
heap. Not enabled by default, change #if in include/debugger.h to use
this (the heap allocator is very slow).

diff --git a/debugger/expr.c b/debugger/expr.c
index bf5f9c2..1f9a4eb 100644
--- a/debugger/expr.c
+++ b/debugger/expr.c
@@ -17,7 +17,6 @@
 #include "task.h"
 #include "selectors.h"
 #include "debugger.h"
-#include "xmalloc.h"
 
 #include "expr.h"
 
@@ -811,7 +810,7 @@
   int		i;
   struct expr * rtn;
 
-  rtn = (struct expr *) xmalloc(sizeof(struct expr));
+  rtn = (struct expr *) DBG_alloc(sizeof(struct expr));
 
   /*
    * First copy the contents of the expression itself.
@@ -829,15 +828,15 @@
     case EXPR_TYPE_CONST:
       break;
     case EXPR_TYPE_STRING:
-      rtn->un.string.str = xstrdup(exp->un.string.str);
+      rtn->un.string.str = DBG_strdup(exp->un.string.str);
       break;
     case EXPR_TYPE_SYMBOL:
-      rtn->un.symbol.name = xstrdup(exp->un.symbol.name);
+      rtn->un.symbol.name = DBG_strdup(exp->un.symbol.name);
       break;
     case EXPR_TYPE_PSTRUCT:
     case EXPR_TYPE_STRUCT:
       rtn->un.structure.exp1 = DEBUG_CloneExpr(exp->un.structure.exp1);
-      rtn->un.structure.element_name = xstrdup(exp->un.structure.element_name);
+      rtn->un.structure.element_name = DBG_strdup(exp->un.structure.element_name);
       break;
     case EXPR_TYPE_CALL:
       /*
@@ -848,7 +847,7 @@
 	{
 	  rtn->un.call.arg[i]  = DEBUG_CloneExpr(exp->un.call.arg[i]);
 	}
-      rtn->un.call.funcname = xstrdup(exp->un.call.funcname);
+      rtn->un.call.funcname = DBG_strdup(exp->un.call.funcname);
       break;
     case EXPR_TYPE_BINOP:
       rtn->un.binop.exp1 = DEBUG_CloneExpr(exp->un.binop.exp1);
@@ -886,15 +885,15 @@
     case EXPR_TYPE_CONST:
       break;
     case EXPR_TYPE_STRING:
-      free((char *) exp->un.string.str);
+      DBG_free((char *) exp->un.string.str);
       break;
     case EXPR_TYPE_SYMBOL:
-      free((char *) exp->un.symbol.name);
+      DBG_free((char *) exp->un.symbol.name);
       break;
     case EXPR_TYPE_PSTRUCT:
     case EXPR_TYPE_STRUCT:
       DEBUG_FreeExpr(exp->un.structure.exp1);
-      free((char *) exp->un.structure.element_name);
+      DBG_free((char *) exp->un.structure.element_name);
       break;
     case EXPR_TYPE_CALL:
       /*
@@ -905,7 +904,7 @@
 	{
 	  DEBUG_FreeExpr(exp->un.call.arg[i]);
 	}
-      free((char *) exp->un.call.funcname);
+      DBG_free((char *) exp->un.call.funcname);
       break;
     case EXPR_TYPE_BINOP:
       DEBUG_FreeExpr(exp->un.binop.exp1);
@@ -920,6 +919,6 @@
       break;
     }
 
-  free(exp);
+  DBG_free(exp);
   return TRUE;
 }