Fixed %p in printf (now using wsprintf which doesn't support it).
Added ThreadId and ProcessId internal vars.
Allow at startup to pick up a process to debug.

diff --git a/debugger/stack.c b/debugger/stack.c
index 2142f53..9139a97 100644
--- a/debugger/stack.c
+++ b/debugger/stack.c
@@ -273,8 +273,8 @@
 
     if (is16) {
         if (!DEBUG_READ_MEM((void*)next_switch, &frame32, sizeof(STACK32FRAME))) {
-	    if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame %p\n", 
-				     (STACK32FRAME*)next_switch );
+	    if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame 0x%08lx\n", 
+				     (unsigned long)(STACK32FRAME*)next_switch );
 	    return;
 	}
 	cur_switch = (DWORD)frame32.frame16;
@@ -286,7 +286,8 @@
 	p = DEBUG_ToLinear(&tmp);
 	
 	if (!DEBUG_READ_MEM((void*)p, &frame16, sizeof(STACK16FRAME))) {
-	    if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame %p\n", (STACK16FRAME*)p );
+	    if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame 0x%08lx\n", 
+				     (unsigned long)(STACK16FRAME*)p );
 	    return;
 	}
 	cur_switch = (DWORD)frame16.frame32;
@@ -306,7 +307,8 @@
 	   if (is16) {
 	      
 	       if (!DEBUG_READ_MEM((void*)next_switch, &frame32, sizeof(STACK32FRAME))) {
-		  if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame %p\n", (STACK32FRAME*)next_switch );
+		  if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame 0x%08lx\n", 
+					   (unsigned long)(STACK32FRAME*)next_switch );
 		  return;
 	       }
 
@@ -324,8 +326,8 @@
 	       p = DEBUG_ToLinear(&tmp);
 	       
 	       if (!DEBUG_READ_MEM((void*)p, &frame16, sizeof(STACK16FRAME))) {
-		   if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame %p\n", 
-					    (STACK16FRAME*)p );
+		   if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame 0x%08lx\n", 
+					    (unsigned long)(STACK16FRAME*)p );
 		   return;
 	       }
 	       cur_switch = (DWORD)frame16.frame32;
@@ -339,8 +341,8 @@
 	      p = DEBUG_ToLinear(&tmp);
 	      
 	      if (!DEBUG_READ_MEM((void*)p, &frame16, sizeof(STACK16FRAME))) {
-		  if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame %p\n",
-					   (STACK16FRAME*)p );
+		  if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame 0x%08lx\n",
+					   (unsigned long)(STACK16FRAME*)p );
 		  return;
 	      }
 	      
@@ -354,8 +356,8 @@
 	      
 	      next_switch = cur_switch;
 	      if (!DEBUG_READ_MEM((void*)next_switch, &frame32, sizeof(STACK32FRAME))) {
-		 if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame %p\n", 
-					  (STACK32FRAME*)next_switch );
+		 if (noisy) DEBUG_Printf( DBG_CHN_MESG, "Bad stack frame 0x%08lx\n", 
+					  (unsigned long)(STACK32FRAME*)next_switch );
 		 return;
 	      }
 	      cur_switch = (DWORD)frame32.frame16;