DebugView.st
changeset 788 26d452e40e52
parent 787 dab2fdc4a811
child 789 a9595b71a8fa
equal deleted inserted replaced
787:dab2fdc4a811 788:26d452e40e52
    17 		steppedContextAddress canAbort abortButton terminateButton
    17 		steppedContextAddress canAbort abortButton terminateButton
    18 		continueButton stepButton nextButton sendButton returnButton
    18 		continueButton stepButton nextButton sendButton returnButton
    19 		restartButton exclusive inspecting nChainShown inspectedProcess
    19 		restartButton exclusive inspecting nChainShown inspectedProcess
    20 		updateProcess stopButton updateButton monitorToggle stepping
    20 		updateProcess stopButton updateButton monitorToggle stepping
    21 		steppedContextLineno stepForReturn actualContext inWrap
    21 		steppedContextLineno stepForReturn actualContext inWrap
    22 		stackInspector steppedContext'
    22 		stackInspector steppedContext wrapperContext'
    23 	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
    23 	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
    24 		DebuggingDebugger'
    24 		DebuggingDebugger'
    25 	poolDictionaries:''
    25 	poolDictionaries:''
    26 	category:'Interface-Debugger'
    26 	category:'Interface-Debugger'
    27 !
    27 !
   787 
   787 
   788         catchBlock := [
   788         catchBlock := [
   789             catchBlock := nil.
   789             catchBlock := nil.
   790             contextArray := nil.
   790             contextArray := nil.
   791             selectedContext := actualContext := nil.
   791             selectedContext := actualContext := nil.
   792             steppedContext := nil.
   792             steppedContext := wrapperContext := nil.
   793 
   793 
   794             (exitAction == #terminate) ifTrue:[
   794             (exitAction == #terminate) ifTrue:[
   795                 aProcess terminate.
   795                 aProcess terminate.
   796             ].
   796             ].
   797             (exitAction == #quickTerminate) ifTrue:[
   797             (exitAction == #quickTerminate) ifTrue:[
   800             super destroy
   800             super destroy
   801         ].
   801         ].
   802     ].
   802     ].
   803     self open
   803     self open
   804 
   804 
   805     "Modified: 21.10.1996 / 13:43:05 / cg"
   805     "Modified: 22.10.1996 / 11:58:53 / cg"
   806 ! !
   806 ! !
   807 
   807 
   808 !DebugView methodsFor:'help'!
   808 !DebugView methodsFor:'help'!
   809 
   809 
   810 helpTextFor:aComponent
   810 helpTextFor:aComponent
  1154     "Modified: 14.10.1996 / 13:30:56 / cg"
  1154     "Modified: 14.10.1996 / 13:30:56 / cg"
  1155 !
  1155 !
  1156 
  1156 
  1157 stepOrNext
  1157 stepOrNext
  1158     |where here s isWrap method lastWrappedConAddr wrappedMethod 
  1158     |where here s isWrap method lastWrappedConAddr wrappedMethod 
  1159      inBlock left ignore contextBelow lastWrappedContext|
  1159      inBlock left ignore contextBelow lastWrappedContext
       
  1160      leftWrap enteredWrap|
  1160 
  1161 
  1161     skipLineNr == #return ifTrue:[
  1162     skipLineNr == #return ifTrue:[
  1162         name := Processor activeProcess nameOrId.
  1163         name := Processor activeProcess nameOrId.
  1163         self label:('context returned ' , ' (process: ' , name , ')').
  1164         self label:('context returned ' , ' (process: ' , name , ')').
  1164         here := thisContext sender sender.
  1165         here := thisContext sender sender.
  1197     "
  1198     "
  1198      kludge to hide breakpoint wrappers in the context list: 
  1199      kludge to hide breakpoint wrappers in the context list: 
  1199          check if we are in a wrapper methods hidden setup-sequence
  1200          check if we are in a wrapper methods hidden setup-sequence
  1200          if so, ignore the interrupt and continue single sending
  1201          if so, ignore the interrupt and continue single sending
  1201     "
  1202     "
  1202     where := here.
       
  1203     isWrap := false.
  1203     isWrap := false.
  1204     left := false.
  1204     left := false.
  1205 
  1205     leftWrap := enteredWrap := false.
       
  1206 
       
  1207     where := here.
  1206     inWrap ifTrue:[
  1208     inWrap ifTrue:[
  1207         wrappedMethod := nil.
  1209         wrappedMethod := nil.
  1208         5 timesRepeat:[
  1210         5 timesRepeat:[
  1209 "/ where selector printNL.
       
  1210             (where notNil and:[where isBlockContext not]) ifTrue:[
  1211             (where notNil and:[where isBlockContext not]) ifTrue:[
  1211                 method := where method.
  1212                 method := where method.
  1212                 (method notNil and:[method isWrapped]) ifTrue:[
  1213                 (method notNil and:[method isWrapped]) ifTrue:[
  1213                     "
  1214                     "
  1214                      in a wrapper method
  1215                      in a wrapper method
  1219                         where sender receiver == method originalMethod ifFalse:[
  1220                         where sender receiver == method originalMethod ifFalse:[
  1220                             isWrap := true.
  1221                             isWrap := true.
  1221                         ]
  1222                         ]
  1222                     ] ifFalse:[
  1223                     ] ifFalse:[
  1223                         where == steppedContext ifTrue:[
  1224                         where == steppedContext ifTrue:[
  1224 "/DebuggingDebugger ifTrue:[
  1225 
  1225 "/ 'change stepCon from: ' print.
  1226                             DebuggingDebugger ifTrue:[
  1226 "/ steppedContext print.
  1227                                 'change stepCon from: ' print.
  1227 "/ ' to: ' print.
  1228                                 steppedContext print.
  1228 "/ lastWrappedContext printNL.
  1229                                 ' to lastWrapped: ' print.
  1229 "/].
  1230                                 lastWrappedContext printNL.
       
  1231                             ].
       
  1232 
  1230                             inWrap := false.
  1233                             inWrap := false.
       
  1234                             leftWrap := true.
       
  1235                             wrapperContext := steppedContext.
  1231                             steppedContext := lastWrappedContext
  1236                             steppedContext := lastWrappedContext
  1232                         ]
  1237                         ]
  1233                     ]
  1238                     ]
  1234                 ].
  1239                 ].
  1235                 where := where sender
  1240                 where := where sender
  1247         "/
  1252         "/
  1248         where := nil. here := nil.
  1253         where := nil. here := nil.
  1249         ObjectMemory flushInlineCaches.
  1254         ObjectMemory flushInlineCaches.
  1250         
  1255         
  1251         skipLineNr == #return ifTrue:[
  1256         skipLineNr == #return ifTrue:[
  1252             'skipRet in wrap' printCR.
  1257             DebuggingDebugger ifTrue:[
       
  1258                 'skipRet in wrap' printCR.
       
  1259             ]
  1253         ].
  1260         ].
  1254 
  1261 
  1255         StepInterruptPending := 1.
  1262         StepInterruptPending := 1.
  1256         InterruptPending := 1.
  1263         InterruptPending := 1.
  1257         InStepInterrupt := nil.
  1264         InStepInterrupt := nil.
  1380     ] ifFalse:[
  1387     ] ifFalse:[
  1381 "/ ' send' printNL.
  1388 "/ ' send' printNL.
  1382         "
  1389         "
  1383          a send
  1390          a send
  1384         "
  1391         "
       
  1392         DebuggingDebugger ifTrue:[
       
  1393             'clear steppedContext' printCR.
       
  1394         ].
  1385         steppedContext := nil.
  1395         steppedContext := nil.
  1386         s := 'after send'
  1396         s := 'after send'
  1387     ].
  1397     ].
       
  1398 
       
  1399     ignore := false.
       
  1400 
       
  1401     "
       
  1402      kludge to hide breakpoint wrappers in the context list: 
       
  1403          check if we are in a wrapper methods hidden exit-sequence
       
  1404          if so, ignore the interrupt and continue single sending
       
  1405     "
       
  1406     (where isNil 
       
  1407     and:[wrapperContext notNil])
       
  1408     ifTrue:[
       
  1409         "/ did not find our steppedContext along the chain;
       
  1410         "/ could be in a wrappedMethods exitBlock ...
       
  1411 
       
  1412         leftWrap ifFalse:[
       
  1413             where := here.
       
  1414             wrappedMethod := nil.
       
  1415             5 timesRepeat:[
       
  1416                 where notNil ifTrue:[
       
  1417                     where isBlockContext ifFalse:[
       
  1418                         method := where method.
       
  1419                         (method notNil and:[method isWrapped]) ifTrue:[
       
  1420                             where == wrapperContext ifTrue:[
       
  1421                                 DebuggingDebugger ifTrue:[
       
  1422                                     'change stepCon fromWrapped: ' print.
       
  1423                                     steppedContext print.
       
  1424                                     ' to: ' print.
       
  1425                                     wrapperContext printNL.
       
  1426                                 ].
       
  1427 
       
  1428                                 inWrap := true.
       
  1429                                 enteredWrap := true.
       
  1430                                 steppedContext := wrapperContext.
       
  1431                                 wrapperContext := nil.
       
  1432                             ]
       
  1433                         ].
       
  1434                     ].
       
  1435                     where := where sender
       
  1436                 ]
       
  1437             ].
       
  1438         ].
       
  1439         enteredWrap ifTrue:[
       
  1440             ignore := true
       
  1441         ]
       
  1442     ].
       
  1443 
       
  1444     "/
  1388 
  1445 
  1389     left ifTrue:[
  1446     left ifTrue:[
  1390         "/ special care for stepInterrupt in send,
  1447         "/ special care for stepInterrupt in send,
  1391         "/ when created a dummy context (lineNr == 1)
  1448         "/ when created a dummy context (lineNr == 1)
  1392 
  1449 
  1410             where print.
  1467             where print.
  1411             '[' print. where lineNumber print. ']' printNL.
  1468             '[' print. where lineNumber print. ']' printNL.
  1412         ].
  1469         ].
  1413     ].
  1470     ].
  1414 
  1471 
  1415     ignore := false.
  1472     ignore ifFalse:[
  1416 
  1473 
  1417     (bigStep 
  1474         (bigStep 
  1418     and:[steppedContextLineno notNil 
  1475         and:[steppedContextLineno notNil 
  1419     and:[where notNil 
  1476         and:[where notNil 
  1420     and:[where lineNumber == steppedContextLineno]]]) ifTrue:[
  1477         and:[where lineNumber == steppedContextLineno]]]) ifTrue:[
  1421         DebuggingDebugger == true ifTrue:[
  1478             DebuggingDebugger == true ifTrue:[
  1422             'same line - ignored' printNL.
  1479                 'same line - ignored' printNL.
  1423         ].
  1480             ].
  1424         ignore := true
  1481             ignore := true
  1425     ].
  1482         ].
  1426 
  1483 
  1427     (left not 
  1484         (left not 
  1428     and:[skipLineNr notNil 
  1485         and:[skipLineNr notNil 
  1429     and:[where notNil
  1486         and:[where notNil
  1430     and:[where lineNumber < skipLineNr]]]) ifTrue:[
  1487         and:[where lineNumber < skipLineNr]]]) ifTrue:[
  1431         DebuggingDebugger == true ifTrue:[
  1488             DebuggingDebugger == true ifTrue:[
  1432             'skip (' print. skipLineNr print. ' unreached - ignored' printNL.
  1489                 'skip (' print. skipLineNr print. ' unreached - ignored' printNL.
  1433         ].
  1490             ].
  1434         ignore := true
  1491             ignore := true
  1435     ].
  1492         ].
  1436 
  1493 
  1437     (steppedContextLineno isNil 
  1494         (steppedContextLineno isNil 
  1438     and:[skipLineNr isNil
  1495         and:[skipLineNr isNil
  1439     and:[thisContext sender selector == #contextInterrupt]]) ifTrue:[
  1496         and:[thisContext sender selector == #contextInterrupt]]) ifTrue:[
  1440         DebuggingDebugger == true ifTrue:[
  1497             DebuggingDebugger == true ifTrue:[
  1441             'same line2 (after conIRQ) - ignored' printNL.
  1498                 'same line2 (after conIRQ) - ignored' printNL.
  1442         ].
  1499             ].
  1443         ignore := true
  1500             ignore := true
       
  1501         ].
  1444     ].
  1502     ].
  1445 
  1503 
  1446     ignore ifTrue:[
  1504     ignore ifTrue:[
  1447 "/' ' printNL.
  1505 "/' ' printNL.
  1448         where := nil. here := nil.
  1506         where := nil. here := nil.
  1468     bigStep := false.
  1526     bigStep := false.
  1469 
  1527 
  1470     "release refs to context"
  1528     "release refs to context"
  1471     where := nil. here := nil.
  1529     where := nil. here := nil.
  1472 "/'enter' printCR.
  1530 "/'enter' printCR.
       
  1531 
  1473     self enter:thisContext sender sender
  1532     self enter:thisContext sender sender
  1474 
  1533 
  1475     "Created: 14.10.1996 / 12:53:39 / cg"
  1534     "Created: 14.10.1996 / 12:53:39 / cg"
  1476     "Modified: 22.10.1996 / 11:31:44 / cg"
  1535     "Modified: 22.10.1996 / 12:54:33 / cg"
  1477 ! !
  1536 ! !
  1478 
  1537 
  1479 !DebugView methodsFor:'menu / button actions'!
  1538 !DebugView methodsFor:'menu / button actions'!
  1480 
  1539 
  1481 autoUpdateOff
  1540 autoUpdateOff
  1592             self interruptProcessWith:[Object abortSignal raise].
  1651             self interruptProcessWith:[Object abortSignal raise].
  1593         ].
  1652         ].
  1594         ^ self
  1653         ^ self
  1595     ].
  1654     ].
  1596 
  1655 
  1597     steppedContext := nil.
  1656     steppedContext := wrapperContext := nil.
  1598     haveControl := false.
  1657     haveControl := false.
  1599     exitAction := #abort.
  1658     exitAction := #abort.
  1600 
  1659 
  1601     "exit private event-loop"
  1660     "exit private event-loop"
  1602     catchBlock notNil ifTrue:[
  1661     catchBlock notNil ifTrue:[
  1607         'DEBUGGER: oops, abort failed' errorPrintNL.
  1666         'DEBUGGER: oops, abort failed' errorPrintNL.
  1608     ].
  1667     ].
  1609 
  1668 
  1610     ^ self.
  1669     ^ self.
  1611 
  1670 
  1612     "Modified: 21.10.1996 / 13:47:28 / cg"
  1671     "Modified: 22.10.1996 / 11:59:21 / cg"
  1613 !
  1672 !
  1614 
  1673 
  1615 doContinue
  1674 doContinue
  1616     "continue from menu"
  1675     "continue from menu"
  1617 
  1676 
  1625         self processPerform:#resume.
  1684         self processPerform:#resume.
  1626 
  1685 
  1627         ^ self
  1686         ^ self
  1628     ].
  1687     ].
  1629     canContinue ifTrue:[
  1688     canContinue ifTrue:[
  1630         steppedContext := nil.
  1689         steppedContext := wrapperContext := nil.
  1631         tracing := false.
  1690         tracing := false.
  1632         haveControl := false.
  1691         haveControl := false.
  1633         exitAction := #continue.
  1692         exitAction := #continue.
  1634 
  1693 
  1635         "exit private event-loop"
  1694         "exit private event-loop"
  1645             self showSelection:1.
  1704             self showSelection:1.
  1646             self doReturn
  1705             self doReturn
  1647         ]
  1706         ]
  1648     ]
  1707     ]
  1649 
  1708 
  1650     "Modified: 21.10.1996 / 13:47:31 / cg"
  1709     "Modified: 22.10.1996 / 11:59:24 / cg"
  1651 !
  1710 !
  1652 
  1711 
  1653 doNext
  1712 doNext
  1654     "skip for next source-code line"
  1713     "skip for next source-code line"
  1655 
  1714 
  1673         ].
  1732         ].
  1674         self interruptProcessWith:[selectedContext unwindAndRestart].
  1733         self interruptProcessWith:[selectedContext unwindAndRestart].
  1675         ^ self
  1734         ^ self
  1676     ].
  1735     ].
  1677 
  1736 
  1678     steppedContext := nil.
  1737     steppedContext := wrapperContext := nil.
  1679     haveControl := false.
  1738     haveControl := false.
  1680     exitAction := #restart.
  1739     exitAction := #restart.
  1681 
  1740 
  1682     "exit private event-loop"
  1741     "exit private event-loop"
  1683     catchBlock notNil ifTrue:[catchBlock value].
  1742     catchBlock notNil ifTrue:[catchBlock value].
  1684 
  1743 
  1685     "/ not reached
  1744     "/ not reached
  1686     'DEBUGGER: oops, restart failed' errorPrintNL.
  1745     'DEBUGGER: oops, restart failed' errorPrintNL.
  1687     restartButton turnOff.
  1746     restartButton turnOff.
  1688 
  1747 
  1689     "Modified: 21.10.1996 / 13:47:35 / cg"
  1748     "Modified: 22.10.1996 / 11:59:28 / cg"
  1690 !
  1749 !
  1691 
  1750 
  1692 doReturn
  1751 doReturn
  1693     "return - the selected context will do a ^nil"
  1752     "return - the selected context will do a ^nil"
  1694 
  1753 
  1698         ].
  1757         ].
  1699         self interruptProcessWith:[selectedContext unwind].
  1758         self interruptProcessWith:[selectedContext unwind].
  1700         ^ self
  1759         ^ self
  1701     ].
  1760     ].
  1702 
  1761 
  1703     steppedContext := nil.
  1762     steppedContext := wrapperContext := nil.
  1704     haveControl := false.
  1763     haveControl := false.
  1705     exitAction := #return.
  1764     exitAction := #return.
  1706 
  1765 
  1707     "exit private event-loop"
  1766     "exit private event-loop"
  1708     catchBlock notNil ifTrue:[catchBlock value].
  1767     catchBlock notNil ifTrue:[catchBlock value].
  1709 
  1768 
  1710     "/ not reached
  1769     "/ not reached
  1711     'DEBUGGER: oops, return failed' errorPrintNL.
  1770     'DEBUGGER: oops, return failed' errorPrintNL.
  1712     returnButton turnOff.
  1771     returnButton turnOff.
  1713 
  1772 
  1714     "Modified: 21.10.1996 / 13:47:38 / cg"
  1773     "Modified: 22.10.1996 / 11:59:31 / cg"
  1715 !
  1774 !
  1716 
  1775 
  1717 doSend
  1776 doSend
  1718     "single send; reenter with next message send"
  1777     "single send; reenter with next message send"
  1719 
  1778 
  1720     inspecting ifTrue:[^ self].
  1779     inspecting ifTrue:[^ self].
  1721 
  1780 
  1722     canContinue ifTrue:[
  1781     canContinue ifTrue:[
  1723         steppedContext := nil.
  1782         steppedContext := wrapperContext := nil.
  1724         haveControl := false.
  1783         haveControl := false.
  1725         exitAction := #step.
  1784         exitAction := #step.
  1726 
  1785 
  1727         "exit private event-loop"
  1786         "exit private event-loop"
  1728         catchBlock notNil ifTrue:[catchBlock value].
  1787         catchBlock notNil ifTrue:[catchBlock value].
  1730         "/ not reached
  1789         "/ not reached
  1731         'DEBUGGER: oops, send failed' errorPrintNL.
  1790         'DEBUGGER: oops, send failed' errorPrintNL.
  1732         sendButton turnOff.
  1791         sendButton turnOff.
  1733     ]
  1792     ]
  1734 
  1793 
  1735     "Modified: 21.10.1996 / 13:47:41 / cg"
  1794     "Modified: 22.10.1996 / 11:59:33 / cg"
  1736 !
  1795 !
  1737 
  1796 
  1738 doStep
  1797 doStep
  1739     "skip for next send in selected method"
  1798     "skip for next send in selected method"
  1740 
  1799 
  1764         lineNr == -1 ifTrue:[
  1823         lineNr == -1 ifTrue:[
  1765             steppedContextLineno := skipLineNr := nil.
  1824             steppedContextLineno := skipLineNr := nil.
  1766         ].
  1825         ].
  1767 
  1826 
  1768         steppedContext := con.
  1827         steppedContext := con.
       
  1828         wrapperContext := nil.
  1769 
  1829 
  1770         "
  1830         "
  1771          if we step in a wrapped method,
  1831          if we step in a wrapped method,
  1772          prepare to skip the prolog ...
  1832          prepare to skip the prolog ...
  1773         "
  1833         "
  1795         stepButton turnOff.
  1855         stepButton turnOff.
  1796         nextButton turnOff.
  1856         nextButton turnOff.
  1797         sendButton turnOff.
  1857         sendButton turnOff.
  1798     ]
  1858     ]
  1799 
  1859 
  1800     "Modified: 21.10.1996 / 13:47:49 / cg"
  1860     "Modified: 22.10.1996 / 11:59:42 / cg"
  1801 !
  1861 !
  1802 
  1862 
  1803 doStop
  1863 doStop
  1804     "stop the process (if its running, otherwise this is a no-op)"
  1864     "stop the process (if its running, otherwise this is a no-op)"
  1805 
  1865 
  1824     inspecting ifTrue:[
  1884     inspecting ifTrue:[
  1825         self processPerform:#terminate.
  1885         self processPerform:#terminate.
  1826         ^ self
  1886         ^ self
  1827     ].
  1887     ].
  1828 
  1888 
  1829     steppedContext := nil.
  1889     steppedContext := wrapperContext := nil.
  1830     haveControl := false.
  1890     haveControl := false.
  1831     exitAction := #terminate. 
  1891     exitAction := #terminate. 
  1832 
  1892 
  1833     "exit private event-loop"
  1893     "exit private event-loop"
  1834     catchBlock notNil ifTrue:[catchBlock value].
  1894     catchBlock notNil ifTrue:[catchBlock value].
  1838         'DEBUGGER: oops, terminate failed' errorPrintNL.
  1898         'DEBUGGER: oops, terminate failed' errorPrintNL.
  1839         self warn:'terminate failed'.
  1899         self warn:'terminate failed'.
  1840     ].
  1900     ].
  1841     terminateButton turnOff.
  1901     terminateButton turnOff.
  1842 
  1902 
  1843     "Modified: 21.10.1996 / 13:48:00 / cg"
  1903     "Modified: 22.10.1996 / 11:59:45 / cg"
  1844 !
  1904 !
  1845 
  1905 
  1846 doTrace
  1906 doTrace
  1847     "tracing - not really implemented ..."
  1907     "tracing - not really implemented ..."
  1848 
  1908 
  1912     inspecting ifTrue:[
  1972     inspecting ifTrue:[
  1913         self processPerform:#terminateNoSignal.
  1973         self processPerform:#terminateNoSignal.
  1914         ^ self
  1974         ^ self
  1915     ].
  1975     ].
  1916 
  1976 
  1917     steppedContext := nil.
  1977     steppedContext := wrapperContext := nil.
  1918     haveControl := false.
  1978     haveControl := false.
  1919     exitAction := #quickTerminate.
  1979     exitAction := #quickTerminate.
  1920 
  1980 
  1921     "exit private event-loop"
  1981     "exit private event-loop"
  1922     catchBlock notNil ifTrue:[catchBlock value].
  1982     catchBlock notNil ifTrue:[catchBlock value].
  1926         'DEBUGGER: oops, terminate failed' errorPrintNL.
  1986         'DEBUGGER: oops, terminate failed' errorPrintNL.
  1927         self warn:'terminate failed'.
  1987         self warn:'terminate failed'.
  1928     ].
  1988     ].
  1929     terminateButton turnOff.
  1989     terminateButton turnOff.
  1930 
  1990 
  1931     "Modified: 21.10.1996 / 13:48:05 / cg"
  1991     "Modified: 22.10.1996 / 11:59:49 / cg"
  1932 !
  1992 !
  1933 
  1993 
  1934 removeAllBreakpoints
  1994 removeAllBreakpoints
  1935     "remove all trace & breakpoints - if any"
  1995     "remove all trace & breakpoints - if any"
  1936 
  1996 
  2022     contextInspector release.
  2082     contextInspector release.
  2023     inspectedProcess := nil.
  2083     inspectedProcess := nil.
  2024     exitAction := nil.
  2084     exitAction := nil.
  2025     contextArray := nil.
  2085     contextArray := nil.
  2026     selectedContext := actualContext := nil.
  2086     selectedContext := actualContext := nil.
  2027     steppedContext := nil.
  2087     steppedContext := wrapperContext := nil.
  2028     catchBlock := nil.
  2088     catchBlock := nil.
  2029     grabber := nil.
  2089     grabber := nil.
  2030     self autoUpdateOff.
  2090     self autoUpdateOff.
  2031 
  2091 
  2032     exclusive ifTrue:[CachedExclusive := self] ifFalse:[CachedDebugger := self].
  2092     exclusive ifTrue:[CachedExclusive := self] ifFalse:[CachedDebugger := self].
  2033 
  2093 
  2034     "Modified: 21.10.1996 / 13:42:45 / cg"
  2094     "Modified: 22.10.1996 / 11:59:53 / cg"
  2035 !
  2095 !
  2036 
  2096 
  2037 exclusive:aBoolean
  2097 exclusive:aBoolean
  2038     exclusive := aBoolean
  2098     exclusive := aBoolean
  2039 !
  2099 !
  2325 !
  2385 !
  2326 
  2386 
  2327 unstep 
  2387 unstep 
  2328     stepping := false.
  2388     stepping := false.
  2329     bigStep := false.
  2389     bigStep := false.
  2330     steppedContext := nil.
  2390     steppedContext := wrapperContext := nil.
  2331     exitAction := nil
  2391     exitAction := nil
  2332 
  2392 
  2333     "Modified: 21.10.1996 / 13:47:53 / cg"
  2393     "Modified: 22.10.1996 / 11:59:57 / cg"
  2334 !
  2394 !
  2335 
  2395 
  2336 updateContext
  2396 updateContext
  2337     |oldContext idx|
  2397     |oldContext idx|
  2338 
  2398 
  2599     contextInspector release.
  2659     contextInspector release.
  2600     inspectedProcess := nil.
  2660     inspectedProcess := nil.
  2601     exitAction := nil.
  2661     exitAction := nil.
  2602     contextArray := nil.
  2662     contextArray := nil.
  2603     selectedContext := actualContext := nil.
  2663     selectedContext := actualContext := nil.
  2604     steppedContext := nil.
  2664     steppedContext := wrapperContext := nil.
  2605     grabber := nil.
  2665     grabber := nil.
  2606     self autoUpdateOff.
  2666     self autoUpdateOff.
  2607 
  2667 
  2608     super destroy    "/ 1.12.94
  2668     super destroy    "/ 1.12.94
  2609 
  2669 
  2610     "Modified: 21.10.1996 / 13:43:40 / cg"
  2670     "Modified: 22.10.1996 / 12:00:00 / cg"
  2611 !
  2671 !
  2612 
  2672 
  2613 showSelection:lineNr
  2673 showSelection:lineNr
  2614     "user clicked on a header line - show selected code in textView.
  2674     "user clicked on a header line - show selected code in textView.
  2615      Also sent to autoselect an interesting context on entry."
  2675      Also sent to autoselect an interesting context on entry."
  2888 ! !
  2948 ! !
  2889 
  2949 
  2890 !DebugView class methodsFor:'documentation'!
  2950 !DebugView class methodsFor:'documentation'!
  2891 
  2951 
  2892 version
  2952 version
  2893     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.108 1996-10-22 10:41:16 cg Exp $'
  2953     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.109 1996-10-22 11:57:13 cg Exp $'
  2894 ! !
  2954 ! !