Breakpoint.st
author Stefan Vogel <sv@exept.de>
Fri, 10 May 2013 15:35:07 +0200
changeset 3163 a404d6ce2caf
parent 3149 218843d4d2b9
child 3196 99005bd9a1f7
permissions -rw-r--r--
Emit #lineno16 byte codes only, if line number really changes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
     3
              All Rights Reserved
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 hereby transferred.
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
"{ Package: 'stx:libcomp' }"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
Object subclass:#Breakpoint
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    15
	instanceVariableNames:'position description line isReached method breaksToIgnore
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    16
		contexts'
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    17
	classVariableNames:''
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    18
	poolDictionaries:''
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    19
	category:'System-Compiler-Debugging'
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    22
Object subclass:#ContextData
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    23
	instanceVariableNames:'context nhits'
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    24
	classVariableNames:''
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    25
	poolDictionaries:''
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    26
	privateIn:Breakpoint
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    27
!
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    28
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
!Breakpoint class methodsFor:'documentation'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
copyright
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
 COPYRIGHT (c) 2006 by eXept Software AG
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
    34
              All Rights Reserved
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
 This software is furnished under a license and may be used
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
 only in accordance with the terms of that license and with the
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
 inclusion of the above copyright notice.   This software may not
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
 be provided or otherwise made available to, or used by, any
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
 other person.  No title to or ownership of the software is
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
 hereby transferred.
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
!Breakpoint class methodsFor:'instance creation'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
new
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    "return an initialized instance"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    ^ self basicNew initialize.
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
!Breakpoint methodsFor:'accessing'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    55
breaksToIgnore
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    56
    ^ breaksToIgnore
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    57
!
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    58
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    59
breaksToIgnore:anInteger
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    60
    breaksToIgnore := anInteger.
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
    61
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    62
!
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
    63
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
    64
description
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
    65
    ^ description
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
    68
description:aBreakpointDescription
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
    69
    description := aBreakpointDescription.
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
2541
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    72
isReached
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    73
    ^ isReached
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    74
!
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    75
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    76
isReached:aBoolean
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    77
    isReached := aBoolean.
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    78
!
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    79
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
line
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    ^ line
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
line:anInteger
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    line := anInteger.
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
position
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    ^ position
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
2894
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
    92
position:anInteger
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
    93
    position := anInteger.
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
    94
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
    95
    "Modified (format): / 02-08-2012 / 09:26:03 / cg"
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
    96
!
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
    97
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
    98
position:positionArg line:lineArg
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
    99
    position := positionArg.
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   100
    line := lineArg.
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   101
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   102
    "Created: / 02-08-2012 / 09:26:27 / cg"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
!Breakpoint methodsFor:'initialization'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
initialize
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    "Invoked when a new instance is created."
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    "/ please change as required (and remove this comment)
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
    "/ method := nil.
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    "/ position := nil.
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   113
    description := BreakpointDescription new.
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    "/ line := nil.
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   115
    breaksToIgnore := 0.
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   116
    contexts := OrderedCollection new.
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    "/ super initialize.   -- commented since inherited method does nothing
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   120
    "Modified: / 16-04-2013 / 08:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   121
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
!Breakpoint methodsFor:'printing & storing'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
printOn:aStream
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    "append a printed representation if the receiver to the argument, aStream"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   129
    aStream nextPutAll: 'BPNT at '.
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   130
    position notNil ifTrue:[
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   131
        aStream
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   132
            nextPutAll: 'source position ';
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   133
            nextPutAll: position printString.
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   134
    ] ifFalse:[
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   135
        line notNil ifTrue:[
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   136
            aStream
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   137
                nextPutAll: 'line ';
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   138
                nextPutAll: line printString.
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   140
        ] ifFalse:[
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   141
            aStream nextPutAll: '???'
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   142
        ]
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   143
    ]
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   144
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   145
    "Modified: / 24-04-2013 / 20:42:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
!Breakpoint methodsFor:'support'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   150
beTracepoint
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   151
    "make this breakpoint a tracepoint"
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   152
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   153
    description beTracepoint
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   154
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   155
    "Created: / 27-01-2012 / 13:56:11 / cg"
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   156
!
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   157
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
break
2545
da9e57300192 comment/format in: #toggle
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   159
    "invoked by the breakPoint's code (see BreakPointNode)"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    <resource: #skipInDebuggersWalkBack>
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   163
    |sender|
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   164
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   165
    sender := thisContext sender.
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   166
    (description shouldBreakIn: sender) ifTrue:[
2792
41047dab5b11 class definition
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
   167
        BreakPointInterrupt
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
            raiseRequestWith: self
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   169
            errorString:('Breakpoint encountered at line %1' bindWith:self line)
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   170
            in:sender.
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   171
    ].
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   172
    (description shouldTraceIn: sender) ifTrue:[
2797
8236426dfe4e tracing
Claus Gittinger <cg@exept.de>
parents: 2795
diff changeset
   173
        Transcript 
8236426dfe4e tracing
Claus Gittinger <cg@exept.de>
parents: 2795
diff changeset
   174
            show:Timestamp now;
8236426dfe4e tracing
Claus Gittinger <cg@exept.de>
parents: 2795
diff changeset
   175
            showCR:(' Trace %1 [%2]' bindWith:sender methodPrintString with:self line)
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   176
    ].
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    "Created: / 15-06-2011 / 12:48:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   179
    "Modified: / 11-07-2011 / 18:17:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2797
8236426dfe4e tracing
Claus Gittinger <cg@exept.de>
parents: 2795
diff changeset
   180
    "Modified: / 27-01-2012 / 14:10:22 / cg"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   183
breakInternal
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   184
    "invoked by the VM when breakpoint is reached. Used by new breakpoint support. "
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   185
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   186
    | sender data i |
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   187
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   188
    sender := thisContext sender sender sender sender sender sender.
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   189
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   190
    breaksToIgnore ~~ 0 ifTrue:[
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   191
        i := 1.
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   192
        [ i <= contexts size ] whileTrue:[
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   193
            (contexts at: i) context isOnMachineStack ifFalse:[
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   194
                contexts removeIndex: i.
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   195
            ] ifTrue:[
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   196
                (contexts at: i) context == sender ifTrue:[
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   197
                    data := (contexts at: i)
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   198
                ]
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   199
            ].
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   200
            i := i + 1.
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   201
        ].
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   202
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   203
        data isNil ifTrue:[
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   204
            data := ContextData new context: sender; nhits: 0.
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   205
            contexts add: data.
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   206
        ].
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   207
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   208
        data nhits == 0 ifTrue:[
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   209
            data nhits: data nhits + 1.
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   210
            self break.
3129
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   211
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   212
        ] ifFalse:[
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   213
            data nhits == breaksToIgnore ifTrue:[
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   214
                data nhits:0.
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   215
           ] ifFalse:[
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   216
                data nhits: data nhits + 1.
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   217
            ].
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   218
        ]
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   219
    ] ifFalse:[
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   220
        self break.
7b4542cc9a9e Added support for new breakpoint implementation. Backward compatible.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3128
diff changeset
   221
    ]
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   222
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   223
    "Created: / 15-04-2013 / 23:58:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   224
    "Modified: / 24-04-2013 / 20:53:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   225
!
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   226
2968
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   227
disable
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   228
    "disable this breakpoint"
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   229
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   230
    description disable
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   231
!
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   232
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
toggle
2792
41047dab5b11 class definition
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
   234
    "toggle this breakpoint"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   236
    description toggle
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
    "Created: / 17-06-2011 / 13:40:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   239
    "Modified: / 11-07-2011 / 18:18:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2792
41047dab5b11 class definition
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
   240
    "Modified (comment): / 27-01-2012 / 10:41:03 / cg"
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   241
!
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   242
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   243
toggleTracing
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   244
    "toggle this breakpoint"
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   245
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   246
    description toggleTracing
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   247
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   248
    "Created: / 27-01-2012 / 13:56:05 / cg"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
!Breakpoint methodsFor:'testing'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
isEnabled
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
    "Bad coding here, state should be full object"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   257
    ^description isEnabled
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
    "Created: / 28-06-2011 / 08:27:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   262
!Breakpoint::ContextData methodsFor:'accessing'!
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   263
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   264
context
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   265
    ^ context
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   266
!
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   267
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   268
context:something
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   269
    context := something.
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   270
!
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   271
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   272
nhits
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   273
    ^ nhits
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   274
!
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   275
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   276
nhits:something
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   277
    nhits := something.
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   278
! !
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   279
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
!Breakpoint class methodsFor:'documentation'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
2554
31516fc84824 #icon moved to stx:libtool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2551
diff changeset
   282
version
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   283
    ^ '$Header: /cvs/stx/stx/libcomp/Breakpoint.st,v 1.14 2013-04-24 19:55:21 vrany Exp $'
2554
31516fc84824 #icon moved to stx:libtool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2551
diff changeset
   284
!
31516fc84824 #icon moved to stx:libtool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2551
diff changeset
   285
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
version_CVS
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   287
    ^ '$Header: /cvs/stx/stx/libcomp/Breakpoint.st,v 1.14 2013-04-24 19:55:21 vrany Exp $'
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
version_SVN
2541
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
   291
    ^ '§ Id §'
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
! !
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   293