Index: /trunk/ccl/lisp-kernel/x86-exceptions.c
===================================================================
--- /trunk/ccl/lisp-kernel/x86-exceptions.c	(revision 5273)
+++ /trunk/ccl/lisp-kernel/x86-exceptions.c	(revision 5274)
@@ -628,4 +628,20 @@
 
 #endif
+
+void
+get_lisp_string(LispObj lisp_string, char *c_string, natural max)
+{
+  lisp_char_code *src = (lisp_char_code *)  (ptr_from_lispobj(lisp_string + misc_data_offset));
+  natural i, n = header_element_count(header_of(lisp_string));
+
+  if (n > max) {
+    n = max;
+  }
+
+  for (i = 0; i < n; i++) {
+    c_string[i] = 0xff & (src[i]);
+  }
+  c_string[n] = 0;
+}
 
 Boolean
@@ -661,4 +677,14 @@
 	  xpPC(context) = (natural) (program_counter+1);
 	  lisp_Debugger(context, info, debug_entry_dbg, "Lisp Breakpoint");
+	  return true;
+
+	case UUO_DEBUG_TRAP_WITH_STRING:
+	  xpPC(context) = (natural) (program_counter+1);
+          {
+            char msg[512];
+
+            get_lisp_string(xpGPR(context,Iarg_z),msg, sizeof(msg)-1);
+            lisp_Debugger(context, info, debug_entry_dbg, msg);
+          }
 	  return true;
           
Index: /trunk/ccl/lisp-kernel/x86-exceptions.h
===================================================================
--- /trunk/ccl/lisp-kernel/x86-exceptions.h	(revision 5273)
+++ /trunk/ccl/lisp-kernel/x86-exceptions.h	(revision 5274)
@@ -92,4 +92,5 @@
 #define UUO_ALLOC_TRAP 0xc5
 #define UUO_DEBUG_TRAP 0xca
+#define UUO_DEBUG_TRAP_WITH_STRING 0xcd
 
 #define XUUO_OPCODE_0 0x0f
