428 |
429 |
429 defaultVerboseBacktrace:aBoolean |
430 defaultVerboseBacktrace:aBoolean |
430 VerboseBacktraceDefault := aBoolean |
431 VerboseBacktraceDefault := aBoolean |
431 |
432 |
432 "Created: 11.1.1997 / 12:14:44 / cg" |
433 "Created: 11.1.1997 / 12:14:44 / cg" |
|
434 ! ! |
|
435 |
|
436 !DebugView class methodsFor:'menu specs'! |
|
437 |
|
438 menuSpec |
|
439 "This resource specification was automatically generated |
|
440 by the MenuEditor of ST/X." |
|
441 |
|
442 "Do not manually edit this!! If it is corrupted, |
|
443 the MenuEditor may not be able to read the specification." |
|
444 |
|
445 " |
|
446 MenuEditor new openOnClass:DebugView andSelector:#menuSpec |
|
447 (Menu new fromLiteralArrayEncoding:(DebugView menuSpec)) startUp |
|
448 " |
|
449 |
|
450 <resource: #menu> |
|
451 |
|
452 ^ |
|
453 #(#Menu |
|
454 #( |
|
455 #(#MenuItem |
|
456 #label: 'Process' |
|
457 #translateLabel: true |
|
458 #submenu: |
|
459 #(#Menu |
|
460 #( |
|
461 #(#MenuItem |
|
462 #label: 'Continue' |
|
463 #translateLabel: true |
|
464 #value: #doContinue |
|
465 ) |
|
466 #(#MenuItem |
|
467 #label: '-' |
|
468 ) |
|
469 #(#MenuItem |
|
470 #label: 'Abort' |
|
471 #translateLabel: true |
|
472 #value: #doAbort |
|
473 ) |
|
474 #(#MenuItem |
|
475 #label: '-' |
|
476 ) |
|
477 #(#MenuItem |
|
478 #label: 'Terminate' |
|
479 #translateLabel: true |
|
480 #value: #doTerminate |
|
481 ) |
|
482 ) |
|
483 nil |
|
484 nil |
|
485 ) |
|
486 ) |
|
487 #(#MenuItem |
|
488 #label: 'Class' |
|
489 #translateLabel: true |
|
490 #submenu: |
|
491 #(#Menu |
|
492 #( |
|
493 #(#MenuItem |
|
494 #label: 'Browse Implementing Class' |
|
495 #translateLabel: true |
|
496 #value: #browseImplementingClass |
|
497 #enabled: #canBrowseImplementingClass |
|
498 ) |
|
499 #(#MenuItem |
|
500 #label: 'Browse Receivers Class' |
|
501 #translateLabel: true |
|
502 #value: #browseReceiversClass |
|
503 #enabled: #canBrowseReceiversClass |
|
504 ) |
|
505 #(#MenuItem |
|
506 #label: '-' |
|
507 ) |
|
508 #(#MenuItem |
|
509 #label: 'Browse Receivers Class Hierarchy' |
|
510 #translateLabel: true |
|
511 #value: #browseClassHierarchy |
|
512 #enabled: #canBrowseClassHierarchy |
|
513 ) |
|
514 #(#MenuItem |
|
515 #label: 'Browse Receivers Full Protocol' |
|
516 #translateLabel: true |
|
517 #value: #browseFullClassProtocol |
|
518 #enabled: #canBrowseFullClassProtocol |
|
519 ) |
|
520 ) |
|
521 nil |
|
522 nil |
|
523 ) |
|
524 ) |
|
525 #(#MenuItem |
|
526 #label: 'Selector' |
|
527 #translateLabel: true |
|
528 #submenu: |
|
529 #(#Menu |
|
530 #( |
|
531 #(#MenuItem |
|
532 #label: 'Browse Implementors...' |
|
533 #translateLabel: true |
|
534 #value: #browseImplementorsOf |
|
535 ) |
|
536 #(#MenuItem |
|
537 #label: 'Browse Senders...' |
|
538 #translateLabel: true |
|
539 #value: #browseSendersOf |
|
540 ) |
|
541 #(#MenuItem |
|
542 #label: '-' |
|
543 ) |
|
544 #(#MenuItem |
|
545 #label: 'Define' |
|
546 #translateLabel: true |
|
547 #value: #doDefineMethod |
|
548 #enabled: #canDefineMethod |
|
549 ) |
|
550 ) |
|
551 nil |
|
552 nil |
|
553 ) |
|
554 ) |
|
555 #(#MenuItem |
|
556 #label: 'View' |
|
557 #translateLabel: true |
|
558 #submenu: |
|
559 #(#Menu |
|
560 #( |
|
561 #(#MenuItem |
|
562 #label: 'Show More' |
|
563 #translateLabel: true |
|
564 #value: #doShowMore |
|
565 #enabled: #canShowMore |
|
566 ) |
|
567 #(#MenuItem |
|
568 #label: 'Show Verbose' |
|
569 #translateLabel: true |
|
570 #value: #doSHowVerbose |
|
571 ) |
|
572 ) |
|
573 nil |
|
574 nil |
|
575 ) |
|
576 ) |
|
577 #(#MenuItem |
|
578 #label: 'Breakpoint' |
|
579 #translateLabel: true |
|
580 #submenu: |
|
581 #(#Menu |
|
582 #( |
|
583 #(#MenuItem |
|
584 #label: 'Remove' |
|
585 #translateLabel: true |
|
586 #value: #doRemoveBreakPoint |
|
587 #enabled: #canRemoveBreakpoint |
|
588 ) |
|
589 #(#MenuItem |
|
590 #label: 'Remove All Breakpoints' |
|
591 #translateLabel: true |
|
592 #value: #doRemoveAllBreakPoint |
|
593 ) |
|
594 #(#MenuItem |
|
595 #label: '-' |
|
596 ) |
|
597 #(#MenuItem |
|
598 #label: 'Allow Breakpoints in Debugger' |
|
599 #translateLabel: true |
|
600 #indication: #allowBreakPointsInDebugger |
|
601 ) |
|
602 ) |
|
603 nil |
|
604 nil |
|
605 ) |
|
606 ) |
|
607 #(#MenuItem |
|
608 #label: 'Help' |
|
609 #translateLabel: true |
|
610 #startGroup: #right |
|
611 #submenu: |
|
612 #(#Menu |
|
613 #( |
|
614 #(#MenuItem |
|
615 #label: 'Debuggers Documentation' |
|
616 #translateLabel: true |
|
617 #value: #openHTMLDocument: |
|
618 #argument: 'tools/debugView/TOP.html' |
|
619 ) |
|
620 #(#MenuItem |
|
621 #label: '-' |
|
622 ) |
|
623 #(#MenuItem |
|
624 #label: 'About DebugView...' |
|
625 #translateLabel: true |
|
626 #value: #openAboutThisApplication |
|
627 ) |
|
628 ) |
|
629 nil |
|
630 nil |
|
631 ) |
|
632 ) |
|
633 ) |
|
634 nil |
|
635 nil |
|
636 ) |
433 ! ! |
637 ! ! |
434 |
638 |
435 !DebugView class methodsFor:'misc'! |
639 !DebugView class methodsFor:'misc'! |
436 |
640 |
437 interestingContextFrom:aContext |
641 interestingContextFrom:aContext |
1368 exitAction := nil. |
1574 exitAction := nil. |
1369 bigStep := false. |
1575 bigStep := false. |
1370 stepHow := nil. |
1576 stepHow := nil. |
1371 canContinue := false. |
1577 canContinue := false. |
1372 |
1578 |
1373 bpanel := HorizontalPanelView in:self. |
1579 "/ menuPanel := MenuPanel in:self. |
|
1580 "/ menuPanel verticalLayout:false. |
|
1581 "/ menuPanel receiver:self. |
|
1582 "/ menuPanel menu:(self pullDownMenu). |
|
1583 "/ |
|
1584 "/ mH := menuPanel preferredExtent y. |
|
1585 "/ menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)). |
|
1586 mH := 0. |
|
1587 |
|
1588 "/ oldLayout := false. |
|
1589 oldLayout := true. |
|
1590 oldLayout ifTrue:[ |
|
1591 bpanel := HorizontalPanelView in:self. |
|
1592 self initializeButtonsIn:bpanel. |
|
1593 |
|
1594 bH := bpanel preferredExtent y. |
|
1595 bpanel origin:(0.0 @ mH) |
|
1596 extent:(1.0 @ bH). |
|
1597 panel := VariableVerticalPanel |
|
1598 origin:(0.0 @ (mH + bH)) |
|
1599 corner:(1.0 @ 1.0) |
|
1600 in:self. |
|
1601 |
|
1602 v := self initializeContextListViewIn:panel. |
|
1603 v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25). |
|
1604 |
|
1605 codePanel := View in:panel. |
|
1606 v := self initializeCodeViewIn:codePanel. |
|
1607 v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0). |
|
1608 codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75). |
|
1609 |
|
1610 v := self initializeInspectorViewsIn:panel. |
|
1611 v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0). |
|
1612 |
|
1613 ] ifFalse:[ |
|
1614 bpanel1 := HorizontalPanelView in:self. |
|
1615 self initializeButtons1In:bpanel1. |
|
1616 |
|
1617 bH1 := bpanel1 preferredExtent y. |
|
1618 bpanel1 origin:(0.0 @ mH) |
|
1619 extent:(1.0 @ bH1). |
|
1620 panel := VariableVerticalPanel |
|
1621 origin:(0.0 @ (mH + bH1)) |
|
1622 corner:(1.0 @ 1.0) |
|
1623 in:self. |
|
1624 |
|
1625 v := self initializeContextListViewIn:panel. |
|
1626 v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25). |
|
1627 |
|
1628 codePanel := View in:panel. |
|
1629 bpanel2 := HorizontalPanelView in:codePanel. |
|
1630 self initializeButtons2In:bpanel2. |
|
1631 |
|
1632 bH2 := bpanel2 preferredExtent y. |
|
1633 bpanel2 origin:(0.0 @ 0.0) |
|
1634 extent:(1.0 @ bH2). |
|
1635 |
|
1636 v := self initializeCodeViewIn:codePanel. |
|
1637 v origin:(0.0 @ bH2) corner:(1.0 @ 1.0). |
|
1638 codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75). |
|
1639 |
|
1640 v := self initializeInspectorViewsIn:panel. |
|
1641 v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0). |
|
1642 ]. |
|
1643 |
|
1644 " |
|
1645 Debugger newDebugger |
|
1646 " |
|
1647 ! |
|
1648 |
|
1649 initializeButtons1In:bpanel |
|
1650 |separator| |
|
1651 |
1374 bpanel horizontalLayout:#left. |
1652 bpanel horizontalLayout:#left. |
1375 bpanel verticalLayout:#centerMax. |
1653 bpanel verticalLayout:#centerMax. |
1376 bpanel verticalSpace:ViewSpacing // 2. |
1654 bpanel verticalSpace:ViewSpacing // 2. |
1377 |
1655 |
1378 abortButton := Button |
1656 abortButton := Button |
1379 label:(resources at:'abort') |
1657 label:(resources at:'abort') |
1380 action:[abortButton turnOffWithoutRedraw. self doAbort] |
1658 action:[ |
1381 in:bpanel. |
1659 abortButton turnOffWithoutRedraw. |
1382 |
1660 self doAbort |
|
1661 ] |
|
1662 in:bpanel. |
1383 separator := View extent:(10 @ 5) in:bpanel. |
1663 separator := View extent:(10 @ 5) in:bpanel. |
1384 separator borderWidth:0; level:0. |
1664 separator borderWidth:0; level:0. |
1385 continueButton := Button |
1665 |
1386 label:(resources at:'continue') |
1666 continueButton := Button |
1387 action:[continueButton turnOffWithoutRedraw. self doContinue] |
1667 label:(resources at:'continue') |
1388 in:bpanel. |
1668 action:[ |
|
1669 continueButton turnOffWithoutRedraw. |
|
1670 self doContinue |
|
1671 ] |
|
1672 in:bpanel. |
1389 |
1673 |
1390 separator := View extent:(10 @ 5) in:bpanel. |
1674 separator := View extent:(10 @ 5) in:bpanel. |
1391 separator borderWidth:0; level:0. |
1675 separator borderWidth:0; level:0. |
1392 returnButton := Button |
1676 |
1393 label:(resources at:'return') |
1677 terminateButton := Button |
1394 action:[returnButton turnOff. self doReturn] |
1678 label:(resources at:'terminate') |
1395 in:bpanel. |
1679 action:[ |
1396 |
1680 terminateButton turnOffWithoutRedraw. |
1397 restartButton := Button |
1681 self doTerminate |
1398 label:(resources at:'restart') |
1682 ] |
1399 action:[restartButton turnOff. self doRestart] |
1683 in:bpanel. |
1400 in:bpanel. |
1684 ! |
1401 |
1685 |
|
1686 initializeButtons2In:bpanel |
|
1687 |separator| |
|
1688 |
|
1689 bpanel horizontalLayout:#left. |
|
1690 bpanel verticalLayout:#centerMax. |
|
1691 bpanel verticalSpace:ViewSpacing // 2. |
|
1692 |
|
1693 returnButton := Button |
|
1694 label:(resources at:'return') |
|
1695 action:[ |
|
1696 returnButton turnOff. |
|
1697 self doReturn |
|
1698 ] |
|
1699 in:bpanel. |
|
1700 restartButton := Button |
|
1701 label:(resources at:'restart') |
|
1702 action:[ |
|
1703 restartButton turnOff. |
|
1704 self doRestart |
|
1705 ] |
|
1706 in:bpanel. |
1402 |
1707 |
1403 separator := View extent:(10 @ 5) in:bpanel. |
1708 separator := View extent:(10 @ 5) in:bpanel. |
1404 separator borderWidth:0; level:0. |
1709 separator borderWidth:0; level:0. |
1405 |
1710 |
1406 nextButton := Button |
1711 nextButton := Button |
1407 label:(resources at:'next') |
1712 label:(resources at:'next') |
1408 action:[stepButton turnOff. self doNext] |
1713 action:[ |
1409 in:bpanel. |
1714 stepButton turnOff. |
1410 |
1715 self doNext |
|
1716 ] |
|
1717 in:bpanel. |
|
1718 stepButton := Button |
|
1719 label:(resources at:'step') |
|
1720 action:[ |
|
1721 stepButton turnOff. |
|
1722 self doStep |
|
1723 ] |
|
1724 in:bpanel. |
1411 "/ cg: |
1725 "/ cg: |
1412 "/ I disabled the stepIn / stepOut buttons - for now. |
1726 "/ I disabled the stepIn / stepOut buttons - for now. |
1413 "/ they do not work relyable with inlined blocks yet. |
1727 "/ they do not work relyable with inlined blocks yet. |
1414 "/ |
1728 "/ |
|
1729 |
1415 |
1730 |
1416 "/ img := Image fromFile:'bitmaps/stepIn.xpm'. |
1731 "/ img := Image fromFile:'bitmaps/stepIn.xpm'. |
1417 "/ img isNil ifTrue:[ |
1732 "/ img isNil ifTrue:[ |
1418 "/ img := (resources at:'next') |
1733 "/ img := (resources at:'next') |
1419 "/ ]. |
1734 "/ ]. |
1438 "/ nextOutButton := Button |
1753 "/ nextOutButton := Button |
1439 "/ label:img |
1754 "/ label:img |
1440 "/ action:[stepButton turnOff. self doNextOut] |
1755 "/ action:[stepButton turnOff. self doNextOut] |
1441 "/ in:bpanel. |
1756 "/ in:bpanel. |
1442 |
1757 |
1443 stepButton := Button |
1758 sendButton := Button |
1444 label:(resources at:'step') |
1759 label:(resources at:'send') |
1445 action:[stepButton turnOff. self doStep] |
1760 action:[ |
1446 in:bpanel. |
1761 sendButton turnOff. |
1447 sendButton := Button |
1762 self doSend |
1448 label:(resources at:'send') |
1763 ] |
1449 action:[sendButton turnOff. self doSend] |
1764 in:bpanel. |
1450 in:bpanel. |
|
1451 |
|
1452 separator := View extent:(30 @ 5) in:bpanel. |
1765 separator := View extent:(30 @ 5) in:bpanel. |
1453 separator borderWidth:0; level:0. |
1766 separator borderWidth:0; level:0. |
1454 terminateButton := Button |
1767 |
1455 label:(resources at:'terminate') |
1768 defineButton := Button |
1456 action:[terminateButton turnOffWithoutRedraw. self doTerminate] |
1769 label:(resources at:'define') |
1457 in:bpanel. |
1770 action:[ |
1458 |
1771 defineButton turnOffWithoutRedraw. |
1459 |
1772 self doDefine |
|
1773 ] |
|
1774 in:bpanel. |
|
1775 defineButton beInvisible |
|
1776 ! |
|
1777 |
|
1778 initializeButtonsIn:bpanel |
|
1779 |separator| |
|
1780 |
|
1781 bpanel horizontalLayout:#left. |
|
1782 bpanel verticalLayout:#centerMax. |
|
1783 bpanel verticalSpace:ViewSpacing // 2. |
|
1784 |
|
1785 abortButton := Button |
|
1786 label:(resources at:'abort') |
|
1787 action:[ |
|
1788 abortButton turnOffWithoutRedraw. |
|
1789 self doAbort |
|
1790 ] |
|
1791 in:bpanel. |
|
1792 separator := View extent:(10 @ 5) in:bpanel. |
|
1793 separator borderWidth:0; level:0. |
|
1794 |
|
1795 continueButton := Button |
|
1796 label:(resources at:'continue') |
|
1797 action:[ |
|
1798 continueButton turnOffWithoutRedraw. |
|
1799 self doContinue |
|
1800 ] |
|
1801 in:bpanel. |
|
1802 |
|
1803 separator := View extent:(10 @ 5) in:bpanel. |
|
1804 separator borderWidth:0; level:0. |
|
1805 |
|
1806 returnButton := Button |
|
1807 label:(resources at:'return') |
|
1808 action:[ |
|
1809 returnButton turnOff. |
|
1810 self doReturn |
|
1811 ] |
|
1812 in:bpanel. |
|
1813 restartButton := Button |
|
1814 label:(resources at:'restart') |
|
1815 action:[ |
|
1816 restartButton turnOff. |
|
1817 self doRestart |
|
1818 ] |
|
1819 in:bpanel. |
|
1820 |
|
1821 separator := View extent:(10 @ 5) in:bpanel. |
|
1822 separator borderWidth:0; level:0. |
|
1823 |
|
1824 nextButton := Button |
|
1825 label:(resources at:'next') |
|
1826 action:[ |
|
1827 stepButton turnOff. |
|
1828 self doNext |
|
1829 ] |
|
1830 in:bpanel. |
|
1831 stepButton := Button |
|
1832 label:(resources at:'step') |
|
1833 action:[ |
|
1834 stepButton turnOff. |
|
1835 self doStep |
|
1836 ] |
|
1837 in:bpanel. |
|
1838 "/ cg: |
|
1839 "/ I disabled the stepIn / stepOut buttons - for now. |
|
1840 "/ they do not work relyable with inlined blocks yet. |
|
1841 "/ |
|
1842 |
|
1843 |
|
1844 "/ img := Image fromFile:'bitmaps/stepIn.xpm'. |
|
1845 "/ img isNil ifTrue:[ |
|
1846 "/ img := (resources at:'next') |
|
1847 "/ ]. |
|
1848 "/ nextButton := Button |
|
1849 "/ label:img |
|
1850 "/ action:[stepButton turnOff. self doNext] |
|
1851 "/ in:bpanel. |
|
1852 "/ |
|
1853 "/ img := Image fromFile:'bitmaps/stepOver.xpm'. |
|
1854 "/ img isNil ifTrue:[ |
|
1855 "/ img := (resources at:'over') |
|
1856 "/ ]. |
|
1857 "/ nextOverButton := Button |
|
1858 "/ label:img |
|
1859 "/ action:[stepButton turnOff. self doNextOver] |
|
1860 "/ in:bpanel. |
|
1861 "/ |
|
1862 "/ img := Image fromFile:'bitmaps/stepOut.xpm'. |
|
1863 "/ img isNil ifTrue:[ |
|
1864 "/ img := (resources at:'out') |
|
1865 "/ ]. |
|
1866 "/ nextOutButton := Button |
|
1867 "/ label:img |
|
1868 "/ action:[stepButton turnOff. self doNextOut] |
|
1869 "/ in:bpanel. |
|
1870 |
|
1871 sendButton := Button |
|
1872 label:(resources at:'send') |
|
1873 action:[ |
|
1874 sendButton turnOff. |
|
1875 self doSend |
|
1876 ] |
|
1877 in:bpanel. |
1460 separator := View extent:(30 @ 5) in:bpanel. |
1878 separator := View extent:(30 @ 5) in:bpanel. |
1461 separator borderWidth:0; level:0. |
1879 separator borderWidth:0; level:0. |
1462 defineButton := Button |
1880 |
1463 label:(resources at:'define') |
1881 terminateButton := Button |
1464 action:[defineButton turnOffWithoutRedraw. self doDefine] |
1882 label:(resources at:'terminate') |
1465 in:bpanel. |
1883 action:[ |
1466 defineButton beInvisible. |
1884 terminateButton turnOffWithoutRedraw. |
1467 |
1885 self doTerminate |
1468 bpanel origin:(0.0 @ 0.0) |
1886 ] |
1469 extent:(1.0 @ (bpanel preferredExtent y)). |
1887 in:bpanel. |
1470 |
1888 separator := View extent:(30 @ 5) in:bpanel. |
1471 panel := VariableVerticalPanel |
1889 separator borderWidth:0; level:0. |
1472 origin:(0.0 @ bpanel height) |
1890 |
1473 corner:(1.0 @ 1.0) |
1891 defineButton := Button |
1474 in:self. |
1892 label:(resources at:'define') |
|
1893 action:[ |
|
1894 defineButton turnOffWithoutRedraw. |
|
1895 self doDefine |
|
1896 ] |
|
1897 in:bpanel. |
|
1898 defineButton beInvisible |
|
1899 ! |
|
1900 |
|
1901 initializeCodeViewIn:panel |
|
1902 |v| |
|
1903 |
|
1904 v := HVScrollableView |
|
1905 for:CodeView |
|
1906 miniScrollerH:true |
|
1907 miniScrollerV:false |
|
1908 in:panel. |
|
1909 |
|
1910 "/ v autoHideScrollBars:true. |
|
1911 codeView := v scrolledView. |
|
1912 |
|
1913 ^ v |
|
1914 ! |
|
1915 |
|
1916 initializeContextListViewIn:panel |
|
1917 |v| |
1475 |
1918 |
1476 v := HVScrollableView |
1919 v := HVScrollableView |
1477 for:SelectionInListView |
1920 for:SelectionInListView |
1478 miniScrollerH:true |
1921 miniScrollerH:true |
1479 miniScrollerV:false |
1922 miniScrollerV:false |
1480 in:panel. |
1923 in:panel. |
1481 v autoHideHorizontalScrollBar:true. |
1924 v autoHideHorizontalScrollBar:true. |
1482 v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25). |
|
1483 |
1925 |
1484 contextView := v scrolledView. |
1926 contextView := v scrolledView. |
1485 contextView action:[:lineNr | self showSelection:lineNr]. |
1927 contextView action:[:lineNr | self showSelection:lineNr]. |
1486 contextView doubleClickAction:[:line | self browse]. |
1928 contextView doubleClickAction:[:line | self browseImplementingClass]. |
1487 contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line]. |
1929 contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line]. |
1488 |
1930 |
1489 v := HVScrollableView |
1931 ^ v |
1490 for:CodeView |
1932 ! |
1491 miniScrollerH:true |
1933 |
1492 miniScrollerV:false |
1934 initializeInspectorViewsIn:panel |
1493 in:panel. |
1935 |hpanel| |
1494 v origin:(0.0 @ 0.25) corner:(1.0 @ 0.75). |
|
1495 "/ v autoHideScrollBars:true. |
|
1496 codeView := v scrolledView. |
|
1497 |
1936 |
1498 hpanel := VariableHorizontalPanel in:panel. |
1937 hpanel := VariableHorizontalPanel in:panel. |
1499 hpanel origin:(0.0 @ 0.75) corner:(1.0 @ 1.0). |
|
1500 |
1938 |
1501 receiverInspector := InspectorView |
1939 receiverInspector := InspectorView |
1502 origin:(0.0 @ 0.0) corner:(0.5 @ 1.0) |
1940 origin:(0.0 @ 0.0) corner:(0.5 @ 1.0) |
1503 in:hpanel. |
1941 in:hpanel. |
1504 receiverInspector label:'receiver'. |
1942 receiverInspector label:'receiver'. |
2264 ] forkAt:(Processor activePriority - 1) |
2717 ] forkAt:(Processor activePriority - 1) |
2265 ] |
2718 ] |
2266 |
2719 |
2267 ! |
2720 ! |
2268 |
2721 |
2269 browse |
2722 browseClass |
|
2723 "browse the reveivers class (of the selected contexts message)" |
|
2724 |
|
2725 |cls sel| |
|
2726 |
|
2727 selectedContext isNil ifTrue:[^ self]. |
|
2728 |
|
2729 cls := selectedContext receiver class. |
|
2730 sel := selectedContext selector. |
|
2731 (cls implements:sel) ifFalse:[ |
|
2732 sel := nil |
|
2733 ]. |
|
2734 cls browserClass openInClass:cls selector:sel. |
|
2735 |
|
2736 "Modified: / 3.2.1998 / 20:23:36 / cg" |
|
2737 ! |
|
2738 |
|
2739 browseClassHierarchy |
|
2740 "browse the reveivers classHierarchy (of the selected contexts message)" |
|
2741 |
|
2742 |cls mthd| |
|
2743 |
|
2744 selectedContext isNil ifTrue:[^ self]. |
|
2745 |
|
2746 mthd := selectedContext method. |
|
2747 mthd isNil ifTrue:[ |
|
2748 cls := selectedContext receiver class |
|
2749 ] ifFalse:[ |
|
2750 cls := mthd containingClass. |
|
2751 ]. |
|
2752 cls browserClass browseClassHierarchy:cls. |
|
2753 |
|
2754 "Modified: / 3.2.1998 / 20:23:40 / cg" |
|
2755 ! |
|
2756 |
|
2757 browseFullClassProtocol |
|
2758 "browse the reveivers full protocol (of the selected contexts message)" |
|
2759 |
|
2760 |cls mthd| |
|
2761 |
|
2762 selectedContext isNil ifTrue:[^ self]. |
|
2763 |
|
2764 mthd := selectedContext method. |
|
2765 mthd isNil ifTrue:[ |
|
2766 cls := selectedContext receiver class |
|
2767 ] ifFalse:[ |
|
2768 cls := mthd containingClass. |
|
2769 ]. |
|
2770 cls browserClass browseFullClassProtocol:cls. |
|
2771 |
|
2772 "Modified: / 3.2.1998 / 20:23:44 / cg" |
|
2773 ! |
|
2774 |
|
2775 browseImplementingClass |
|
2776 "browse the implementing class (of the selected contexts message)" |
|
2777 |
2270 |mthd who sel cls| |
2778 |mthd who sel cls| |
2271 |
2779 |
2272 selectedContext isNil ifTrue:[^ self]. |
2780 selectedContext isNil ifTrue:[^ self]. |
2273 |
2781 |
2274 mthd := selectedContext method. |
2782 mthd := selectedContext method. |
2288 |
2796 |
2289 "Created: / 22.11.1995 / 21:27:01 / cg" |
2797 "Created: / 22.11.1995 / 21:27:01 / cg" |
2290 "Modified: / 3.2.1998 / 19:46:40 / cg" |
2798 "Modified: / 3.2.1998 / 19:46:40 / cg" |
2291 ! |
2799 ! |
2292 |
2800 |
2293 browseClass |
|
2294 |cls| |
|
2295 |
|
2296 selectedContext isNil ifTrue:[^ self]. |
|
2297 |
|
2298 cls := selectedContext receiver class. |
|
2299 cls browserClass openInClass:cls selector:nil. |
|
2300 |
|
2301 "Modified: / 3.2.1998 / 20:23:36 / cg" |
|
2302 ! |
|
2303 |
|
2304 browseClassHierarchy |
|
2305 |cls mthd| |
|
2306 |
|
2307 selectedContext isNil ifTrue:[^ self]. |
|
2308 |
|
2309 mthd := selectedContext method. |
|
2310 mthd isNil ifTrue:[ |
|
2311 cls := selectedContext receiver class |
|
2312 ] ifFalse:[ |
|
2313 cls := mthd containingClass. |
|
2314 ]. |
|
2315 cls browserClass browseClassHierarchy:cls. |
|
2316 |
|
2317 "Modified: / 3.2.1998 / 20:23:40 / cg" |
|
2318 ! |
|
2319 |
|
2320 browseFullClassProtocol |
|
2321 |cls mthd| |
|
2322 |
|
2323 selectedContext isNil ifTrue:[^ self]. |
|
2324 |
|
2325 mthd := selectedContext method. |
|
2326 mthd isNil ifTrue:[ |
|
2327 cls := selectedContext receiver class |
|
2328 ] ifFalse:[ |
|
2329 cls := mthd containingClass. |
|
2330 ]. |
|
2331 cls browserClass browseFullClassProtocol:cls. |
|
2332 |
|
2333 "Modified: / 3.2.1998 / 20:23:44 / cg" |
|
2334 ! |
|
2335 |
|
2336 browseImplementors |
2801 browseImplementors |
2337 "open a browser on the implementors of the selected methods selector" |
2802 "open a browser on the implementors of the selected methods selector" |
2338 |
2803 |
2339 selectedContext isNil ifTrue:[ |
2804 selectedContext isNil ifTrue:[ |
2340 ^ self showError:'** select a context first **' |
2805 ^ self showError:'** select a context first **' |
4392 ]. |
4927 ]. |
4393 |
4928 |
4394 " |
4929 " |
4395 enable/disable some menu items |
4930 enable/disable some menu items |
4396 " |
4931 " |
4397 m := contextView middleButtonMenu. |
4932 self updateMenuItems |
4398 (m notNil and:[selectedContext notNil]) ifTrue:[ |
|
4399 m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn). |
|
4400 |
|
4401 (method notNil and:[method isWrapped]) ifTrue:[ |
|
4402 m enable:#removeBreakpoint. |
|
4403 ] ifFalse:[ |
|
4404 m disable:#removeBreakpoint. |
|
4405 ]. |
|
4406 |
|
4407 mthd := selectedContext method. |
|
4408 mthd notNil ifTrue:[ |
|
4409 cls := mCls := mthd containingClass. |
|
4410 ]. |
|
4411 rCls := selectedContext receiver class. |
|
4412 cls isNil ifTrue:[ |
|
4413 cls := rCls |
|
4414 ]. |
|
4415 cls notNil ifTrue:[ |
|
4416 m enableAll:#(browse browseClass browseClassHierarchy browseFullClassProtocol). |
|
4417 rCls == mCls ifTrue:[ |
|
4418 m disable:#browseClass |
|
4419 ]. |
|
4420 mCls isNil ifTrue:[ |
|
4421 m disable:#browse |
|
4422 ] |
|
4423 |
|
4424 ] ifFalse:[ |
|
4425 m disableAll:#(browse browseClass browseClassHierarchy browseFullClassProtocol). |
|
4426 ]. |
|
4427 ] |
|
4428 |
4933 |
4429 "Created: / 14.8.1997 / 20:15:00 / cg" |
4934 "Created: / 14.8.1997 / 20:15:00 / cg" |
4430 "Modified: / 13.11.1998 / 23:19:35 / cg" |
4935 "Modified: / 13.11.1998 / 23:19:35 / cg" |
|
4936 ! |
|
4937 |
|
4938 updateMenuItems |
|
4939 |m mthd cls mCls rCls| |
|
4940 |
|
4941 " |
|
4942 enable/disable some menu items |
|
4943 " |
|
4944 m := contextView middleButtonMenu. |
|
4945 m notNil ifTrue:[ |
|
4946 m disable:#removeBreakpoint. |
|
4947 canShowMore ifFalse:[ |
|
4948 m disable:#showMore |
|
4949 ]. |
|
4950 |
|
4951 selectedContext notNil ifTrue:[ |
|
4952 m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn). |
|
4953 |
|
4954 mthd := selectedContext method. |
|
4955 mthd notNil ifTrue:[ |
|
4956 cls := mCls := mthd containingClass. |
|
4957 mthd isBreakpointed ifTrue:[ |
|
4958 m enable:#removeBreakpoint. |
|
4959 ] |
|
4960 ]. |
|
4961 rCls := selectedContext receiver class. |
|
4962 cls isNil ifTrue:[ |
|
4963 cls := rCls |
|
4964 ]. |
|
4965 cls notNil ifTrue:[ |
|
4966 m enableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol). |
|
4967 rCls == mCls ifTrue:[ |
|
4968 m disable:#browseReceiversClass |
|
4969 ]. |
|
4970 mCls isNil ifTrue:[ |
|
4971 m disable:#browseImplementingClass |
|
4972 ] |
|
4973 |
|
4974 ] ifFalse:[ |
|
4975 m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol). |
|
4976 ]. |
|
4977 ] ifFalse:[ |
|
4978 m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol). |
|
4979 ] |
|
4980 ] |
4431 ! ! |
4981 ! ! |
4432 |
4982 |
4433 !DebugView class methodsFor:'documentation'! |
4983 !DebugView class methodsFor:'documentation'! |
4434 |
4984 |
4435 version |
4985 version |
4436 ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.283 2001-09-26 09:57:05 cg Exp $' |
4986 ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.284 2001-10-08 14:16:22 cg Exp $' |
4437 ! ! |
4987 ! ! |
4438 DebugView initialize! |
4988 DebugView initialize! |