9 other person. No title to or ownership of the software is |
9 other person. No title to or ownership of the software is |
10 hereby transferred. |
10 hereby transferred. |
11 " |
11 " |
12 |
12 |
13 Object subclass:#MessageTracer |
13 Object subclass:#MessageTracer |
14 instanceVariableNames:'traceDetail' |
14 instanceVariableNames:'traceDetail tracedBlock' |
15 classVariableNames:'BreakpointSignal CallingLevel BreakBlock TraceSenderBlock |
15 classVariableNames:'BreakpointSignal CallingLevel BreakBlock TraceSenderBlock |
16 TraceSenderBlock2 LeaveBreakBlock LeaveTraceBlock MethodCounts |
16 TraceSenderBlock2 LeaveBreakBlock LeaveTraceBlock MethodCounts |
17 MethodMemoryUsage MethodTiming TraceFullBlock TraceFullBlock2 |
17 MethodMemoryUsage MethodTiming TraceFullBlock TraceFullBlock2 |
18 ObjectWrittenBreakpointSignal ObjectCopyHolders TimeForWrappers' |
18 ObjectWrittenBreakpointSignal ObjectCopyHolders TimeForWrappers' |
19 poolDictionaries:'' |
19 poolDictionaries:'' |
20 category:'System-Debugging-Support' |
20 category:'System-Debugging-Support' |
21 ! |
21 ! |
22 |
22 |
|
23 MessageTracer subclass:#InteractionCollector |
|
24 instanceVariableNames:'' |
|
25 classVariableNames:'' |
|
26 poolDictionaries:'' |
|
27 privateIn:MessageTracer |
|
28 ! |
|
29 |
23 MessageTracer subclass:#PrintingMessageTracer |
30 MessageTracer subclass:#PrintingMessageTracer |
24 instanceVariableNames:'tracedBlock' |
31 instanceVariableNames:'' |
25 classVariableNames:'' |
32 classVariableNames:'' |
26 poolDictionaries:'' |
33 poolDictionaries:'' |
27 privateIn:MessageTracer |
34 privateIn:MessageTracer |
28 ! |
35 ! |
29 |
36 |
2670 bold; |
2677 bold; |
2671 nextPutAll:aContext selector; |
2678 nextPutAll:aContext selector; |
2672 normal; |
2679 normal; |
2673 nextPutAll:' rec=['. |
2680 nextPutAll:' rec=['. |
2674 |
2681 |
2675 aContext receiver printOn:aStream. |
2682 self printObject:aContext receiver on:aStream. |
|
2683 |
2676 aStream nextPutAll:'] '. |
2684 aStream nextPutAll:'] '. |
2677 (aContext args) keysAndValuesDo:[:idx :arg | |
2685 (aContext args) keysAndValuesDo:[:idx :arg | |
2678 |s| |
|
2679 |
|
2680 s := arg printString. |
|
2681 s > 20 ifTrue:[ |
|
2682 s := arg classNameWithArticle |
|
2683 ]. |
|
2684 aStream nextPutAll:'arg'. idx printOn:aStream. aStream nextPutAll:'=['. |
2686 aStream nextPutAll:'arg'. idx printOn:aStream. aStream nextPutAll:'=['. |
2685 s printOn:aStream. |
2687 self printObject:arg on:aStream. |
2686 aStream nextPutAll:'] '. |
2688 aStream nextPutAll:'] '. |
2687 ]. |
2689 ]. |
2688 |
2690 |
2689 withSender ifTrue:[ |
2691 withSender ifTrue:[ |
2690 sender := aContext sender. |
2692 sender := aContext sender. |
2699 aStream cr; flush. |
2701 aStream cr; flush. |
2700 |
2702 |
2701 "Modified: 5.3.1997 / 12:40:55 / cg" |
2703 "Modified: 5.3.1997 / 12:40:55 / cg" |
2702 ! |
2704 ! |
2703 |
2705 |
|
2706 printObject:anObject on:aStream |
|
2707 |s| |
|
2708 |
|
2709 s := anObject printString. |
|
2710 s size > 20 ifTrue:[ |
|
2711 s := anObject classNameWithArticle |
|
2712 ]. |
|
2713 aStream nextPutAll:s |
|
2714 ! |
|
2715 |
2704 traceEntryFull:aContext on:aStream |
2716 traceEntryFull:aContext on:aStream |
2705 aStream nextPutLine:'-----------------------------------------'. |
2717 aStream nextPutLine:'-----------------------------------------'. |
2706 aContext fullPrintAllOn:aStream |
2718 aContext fullPrintAllOn:aStream |
2707 |
2719 |
2708 "Created: / 30.7.1998 / 20:39:57 / cg" |
2720 "Created: / 30.7.1998 / 20:39:57 / cg" |
2743 |
2755 |
2744 trace:aBlock detail:fullDetail |
2756 trace:aBlock detail:fullDetail |
2745 "trace execution of aBlock." |
2757 "trace execution of aBlock." |
2746 |
2758 |
2747 traceDetail := fullDetail. |
2759 traceDetail := fullDetail. |
|
2760 tracedBlock := aBlock. |
|
2761 |
2748 ObjectMemory stepInterruptHandler:self. |
2762 ObjectMemory stepInterruptHandler:self. |
2749 ^ [ |
2763 ^ [ |
2750 ObjectMemory flushInlineCaches. |
2764 ObjectMemory flushInlineCaches. |
2751 StepInterruptPending := 1. |
2765 StepInterruptPending := 1. |
2752 InterruptPending := 1. |
2766 InterruptPending := 1. |
2753 aBlock value |
2767 aBlock value |
2754 ] valueNowOrOnUnwindDo:[ |
2768 ] valueNowOrOnUnwindDo:[ |
2755 StepInterruptPending := nil. |
2769 tracedBlock := nil. |
2756 ObjectMemory stepInterruptHandler:nil. |
2770 StepInterruptPending := nil. |
|
2771 ObjectMemory stepInterruptHandler:nil. |
2757 ] |
2772 ] |
2758 |
2773 |
2759 " |
2774 " |
2760 MessageTracer trace:[#(6 5 4 3 2 1) sort] detail:false |
2775 PrintingMessageTracer new trace:[#(6 5 4 3 2 1) sort] detail:false |
2761 MessageTracer trace:[#(6 5 4 3 2 1) sort] detail:true |
2776 |
2762 " |
2777 PrintingMessageTracer new trace:[#(6 5 4 3 2 1) sort] detail:true |
|
2778 |
|
2779 PrintingMessageTracer new trace:[#(6 5 4 3 2 1) sort] detail:#indent |
|
2780 |
|
2781 PrintingMessageTracer new trace:[#(6 5 4 3 2 1) sort] detail:#fullIndent |
|
2782 " |
|
2783 |
2763 ! ! |
2784 ! ! |
2764 |
2785 |
2765 !MessageTracer::PrintingMessageTracer methodsFor:'trace helpers '! |
2786 !MessageTracer::PrintingMessageTracer methodsFor:'trace helpers '! |
2766 |
2787 |
2767 stepInterrupt |
2788 stepInterrupt |
2835 self new trace:[#(6 5 4 3 2 1) sort] detail:#indent |
2856 self new trace:[#(6 5 4 3 2 1) sort] detail:#indent |
2836 |
2857 |
2837 self new trace:[#(6 5 4 3 2 1) sort] detail:#fullIndent |
2858 self new trace:[#(6 5 4 3 2 1) sort] detail:#fullIndent |
2838 self new trace:[ View new ] detail:#fullIndent |
2859 self new trace:[ View new ] detail:#fullIndent |
2839 " |
2860 " |
2840 ! |
|
2841 |
|
2842 trace:aBlock detail:fullDetail |
|
2843 "trace execution of aBlock." |
|
2844 |
|
2845 tracedBlock := aBlock. |
|
2846 ^ super trace:aBlock detail:fullDetail |
|
2847 |
|
2848 " |
|
2849 self new trace:[#(6 5 4 3 2 1) sort] detail:false |
|
2850 |
|
2851 self new trace:[#(6 5 4 3 2 1) sort] detail:true |
|
2852 |
|
2853 self new trace:[#(6 5 4 3 2 1) sort] detail:#indent |
|
2854 |
|
2855 self new trace:[#(6 5 4 3 2 1) sort] detail:#fullIndent |
|
2856 " |
|
2857 |
|
2858 ! ! |
2861 ! ! |
2859 |
2862 |
2860 !MessageTracer class methodsFor:'documentation'! |
2863 !MessageTracer class methodsFor:'documentation'! |
2861 |
2864 |
2862 version |
2865 version |
2863 ^ '$Header: /cvs/stx/stx/libbasic3/Attic/MsgTracer.st,v 1.77 1999-02-25 15:23:41 cg Exp $' |
2866 ^ '$Header: /cvs/stx/stx/libbasic3/Attic/MsgTracer.st,v 1.78 1999-02-25 15:31:50 cg Exp $' |
2864 ! ! |
2867 ! ! |
2865 MessageTracer initialize! |
2868 MessageTracer initialize! |