go directly into the debugger if an error occurs
authorClaus Gittinger <cg@exept.de>
Sat, 18 Jan 1997 17:41:06 +0100
changeset 2203 5899dbf1b69c
parent 2202 a3432984bb95
child 2204 0ec2bd49dd82
go directly into the debugger if an error occurs in a systemProcess (no dialog).
Object.st
--- a/Object.st	Sat Jan 18 00:31:09 1997 +0100
+++ b/Object.st	Sat Jan 18 17:41:06 1997 +0100
@@ -1392,10 +1392,22 @@
 
 !Object methodsFor:'converting'!
 
+@ anObject
+	"Answer an OrderedPair with the receiver as the x element and anObject as the y element."
+
+	^OrderedPair x: self y: anObject
+!
+
 asValue
     "return a valueHolder for for the receiver"
 
     ^ ValueHolder with:self
+!
+
+reversePairWith: x
+	"Answer a new OrderedPair whose x value is the argument and whose y value is the receiver."
+
+	^OrderedPair x: x y: self
 ! !
 
 !Object methodsFor:'copying'!
@@ -4368,6 +4380,18 @@
     ^ self
 ! !
 
+!Object methodsFor:'reconstructing'!
+
+reconstructOn: aStream 
+
+	self printOn: aStream
+!
+
+reconstructOn: aStream using: dummy 
+
+	self printOn: aStream
+! !
+
 !Object methodsFor:'secure message sending'!
 
 askFor:aSelector
@@ -4845,6 +4869,11 @@
     "Modified: 11.1.1997 / 14:56:47 / cg"
 !
 
+isAlternationNode
+
+	^false
+!
+
 isArray
     "return true, if the receiver is some kind of array (or weakArray etc);
      false is returned here - the method is only redefined in Array."
@@ -4904,6 +4933,11 @@
     ^ false
 !
 
+isConcatenationNode
+
+	^false
+!
+
 isContext
     "return true, if the receiver is some kind of context;
      false returned here - the method is only redefined in Context."
@@ -4911,6 +4945,11 @@
     ^ false
 !
 
+isEpsilonNode
+
+	^false
+!
+
 isExternalStream
     "return true, if the receiver is some kind of externalStream;
      false is returned here - the method is only redefined in ExternalStream."
@@ -4918,6 +4957,11 @@
     ^false
 !
 
+isFSAFinalState
+
+	^false
+!
+
 isFileStream
     "return true, if the receiver is some kind of fileStream;
      false is returned here - the method is only redefined in FileStream."
@@ -4955,6 +4999,11 @@
     ^ false
 !
 
+isGrammarProduction
+
+	^false
+!
+
 isImage
     "return true, if the receiver is some kind of image;
      false is returned here - the method is only redefined in Image."
@@ -4976,6 +5025,11 @@
     ^ false
 !
 
+isItemSet
+
+	^false
+!
+
 isKindOf:aClass
     "return true, if the receiver is an instance of aClass or one of its
      subclasses, false otherwise.
@@ -5021,6 +5075,16 @@
     ^ false
 !
 
+isLR0Item
+
+	^false
+!
+
+isLR1Item
+
+	^false
+!
+
 isLayout
     "return true, if the receiver is some kind of layout;
      false is returned here - the method is only redefined in Layout."
@@ -5069,6 +5133,11 @@
     "Created: 11.10.1996 / 18:08:56 / cg"
 !
 
+isNonterminal
+
+	^false
+!
+
 isNumber
     "return true, if the receiver is some kind of number;
      false is returned here - the method is only redefined in Number."
@@ -5076,6 +5145,11 @@
     ^ false
 !
 
+isPartitionTransitionMap
+
+	^false
+!
+
 isPoint
     "return true, if the receiver is some kind of point;
      false is returned here - the method is only redefined in Point."
@@ -5150,6 +5224,16 @@
     ^ false
 !
 
+isTerminal
+
+	^false
+!
+
+isTerminalNode
+
+	^false
+!
+
 isText
     "return true, if the receiver is some kind of text object;
      false is returned here - the method is only redefined in Text."
@@ -5159,6 +5243,11 @@
     "Created: 12.5.1996 / 10:56:50 / cg"
 !
 
+isTokenClassification
+
+	^false
+!
+
 isVariable
     "return true if the receiver has indexed instance variables,
      false otherwise."
@@ -5271,55 +5360,61 @@
     Dialog isNil ifTrue:[
         "
          on systems without GUI, simply show
-         the message on the Transcript.
+         the message on the Transcript and abort.
         "
         Transcript showCR:aString.
+        AbortSignal raise.
         ^ self
     ].
-    Dialog autoload.        "in case its autoloaded"
-
-    ErrorSignal handle:[:ex |
-
-        "/ a recursive error - quickly enter debugger
-        "/ this happened, when I corrupted the Dialog class ...
-
-        ('Object [error]: ' , ex errorString , ' cought in errorNotification') errorPrintCR.
+
+    Processor activeProcessIsSystemProcess ifTrue:[
         action := #debug.
-        ex return.
-    ] do:[
-        sender := aContext.
-        sender isNil ifTrue:[
-            sender := thisContext sender.
-            "/
-            "/ for your convenience: skip the emergencyHandler block
-"/            sender isBlockContext ifTrue:[
-"/                sender := sender sender
-"/            ].
+    ] ifFalse:[
+        Dialog autoload.        "in case its autoloaded"
+
+        ErrorSignal handle:[:ex |
+
+            "/ a recursive error - quickly enter debugger
+            "/ this happened, when I corrupted the Dialog class ...
+
+            ('Object [error]: ' , ex errorString , ' cought in errorNotification') errorPrintCR.
+            action := #debug.
+            ex return.
+        ] do:[
+            sender := aContext.
+            sender isNil ifTrue:[
+                sender := thisContext sender.
+                "/
+                "/ for your convenience: skip the emergencyHandler block
+"/                sender isBlockContext ifTrue:[
+"/                    sender := sender sender
+"/                ].
+            ].
+
+            "/ skip intermediate (signal & exception) contexts
+
+            DebugView notNil ifTrue:[
+                sender := DebugView interestingContextFrom:sender
+            ].
+
+            "/ show the first 5 contexts
+
+            con := sender.
+            info := aString , Character cr asString , Character cr asString.
+            1 to:5 do:[:n |
+                con notNil ifTrue:[
+                    info := info , con printString , Character cr asString.
+                    con := con sender
+                ]
+            ].
+
+            action := Dialog 
+                        choose:info 
+                        label:'Exception'
+                        labels:#('proceed' 'abort' 'debug')
+                        values:#(#proceed #abort #debug)
+                        default:#debug.
         ].
-
-        "/ skip intermediate (signal & exception) contexts
-
-        DebugView notNil ifTrue:[
-            sender := DebugView interestingContextFrom:sender
-        ].
-
-        "/ show the first 5 contexts
-
-        con := sender.
-        info := aString , Character cr asString , Character cr asString.
-        1 to:5 do:[:n |
-            con notNil ifTrue:[
-                info := info , con printString , Character cr asString.
-                con := con sender
-            ]
-        ].
-
-        action := Dialog 
-                    choose:info 
-                    label:'Exception'
-                    labels:#('proceed' 'abort' 'debug')
-                    values:#(#proceed #abort #debug)
-                    default:#debug.
     ].
 
     action == #debug ifTrue:[
@@ -5336,7 +5431,7 @@
     "
 
     "Created: 11.1.1997 / 17:53:09 / cg"
-    "Modified: 17.1.1997 / 18:21:58 / cg"
+    "Modified: 18.1.1997 / 17:40:24 / cg"
 !
 
 information:aString
@@ -5442,6 +5537,6 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.163 1997-01-17 19:42:19 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.164 1997-01-18 16:41:06 cg Exp $'
 ! !
 Object initialize!