BreakpointDescription.st
author sr
Tue, 21 Feb 2017 16:54:14 +0100
branchexpecco_2_11_0
changeset 4129 c690dec12b7e
parent 4001 c59cafbd9d60
child 4007 95308b6e887e
child 4360 023577f390b9
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libcomp' }"
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
3758
ab86854328e2 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3481
diff changeset
     3
"{ NameSpace: Smalltalk }"
ab86854328e2 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3481
diff changeset
     4
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
Object subclass:#BreakpointDescription
3478
10e2a710037f class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
     6
	instanceVariableNames:'state condition icon'
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'System-Compiler-Debugging'
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!BreakpointDescription class methodsFor:'documentation'!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
documentation
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
"
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    I describe a breakpoint: its state (enabled/disabled),
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    condition, etc.
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    I may be shared by multiple instances of Breakpoint,
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    since there may be multiple version of same method
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    with breakpoints on different position but representing
3113
4d7936f562c2 class: BreakpointDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2969
diff changeset
    22
    the same logical breakpoint (the one set by the user).
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    [author:]
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
        Jan Vrany <jan.vrany@fit.cvut.cz>
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    [instance variables:]
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    [class variables:]
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    [see also:]
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
"
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
! !
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
!BreakpointDescription class methodsFor:'instance creation'!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
new
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    "return an initialized instance"
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    ^ self basicNew initialize.
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
! !
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
!BreakpointDescription methodsFor:'accessing'!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
condition
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    ^ condition
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
condition:something
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    condition := something.
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
! !
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
!BreakpointDescription methodsFor:'initialization'!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
initialize
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    "Invoked when a new instance is created."
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    state := #enabled
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    "/ super initialize.   -- commented since inherited method does nothing
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    "Modified: / 17-06-2011 / 13:41:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
! !
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
!BreakpointDescription methodsFor:'support'!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
3197
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
    68
beInvisible
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
    69
    state := #hidden.
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
    70
!
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
    71
2794
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
    72
beTracepoint
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
    73
    state := #tracing.
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
    74
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
    75
    "Created: / 27-01-2012 / 13:55:20 / cg"
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
    76
!
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
    77
2969
520b867ee1ed added: #disable
Claus Gittinger <cg@exept.de>
parents: 2798
diff changeset
    78
disable
520b867ee1ed added: #disable
Claus Gittinger <cg@exept.de>
parents: 2798
diff changeset
    79
    state == #deleted ifTrue:[^self].
520b867ee1ed added: #disable
Claus Gittinger <cg@exept.de>
parents: 2798
diff changeset
    80
520b867ee1ed added: #disable
Claus Gittinger <cg@exept.de>
parents: 2798
diff changeset
    81
    state := #disabled.
520b867ee1ed added: #disable
Claus Gittinger <cg@exept.de>
parents: 2798
diff changeset
    82
!
520b867ee1ed added: #disable
Claus Gittinger <cg@exept.de>
parents: 2798
diff changeset
    83
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
shouldBreakIn: aContext
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    state ~~ #enabled ifTrue:[^false].
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
2793
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    87
    ^ condition isNil or:[condition value: thisContext sender]
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    "Created: / 11-07-2011 / 18:16:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2793
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    90
    "Modified (format): / 27-01-2012 / 13:42:28 / cg"
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    91
!
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    92
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    93
shouldTraceIn: aContext
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    94
    state ~~ #tracing ifTrue:[^false].
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    95
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    96
    ^ condition isNil or:[condition value: thisContext sender]
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    97
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
    98
    "Created: / 27-01-2012 / 13:41:58 / cg"
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
toggle
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    state == #deleted ifTrue:[^self].
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
2793
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
   104
    (state == #enabled) ifTrue:[
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
   105
        state := #disabled.
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
   106
    ] ifFalse:[
2794
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   107
        state := #enabled
2793
7809025f7e41 preps for tracing
Claus Gittinger <cg@exept.de>
parents: 2553
diff changeset
   108
    ].
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    "Created: / 17-06-2011 / 13:40:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2794
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   111
    "Modified: / 27-01-2012 / 13:52:54 / cg"
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   112
!
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   113
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   114
toggleTracing
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   115
    state == #deleted ifTrue:[^self].
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   116
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   117
    (state == #tracing) ifTrue:[ 
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   118
        state := #disabled 
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   119
    ] ifFalse:[
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   120
        state := #tracing.
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   121
    ].
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   122
016b6feb0058 tracing
Claus Gittinger <cg@exept.de>
parents: 2793
diff changeset
   123
    "Created: / 27-01-2012 / 13:52:41 / cg"
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
! !
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
!BreakpointDescription methodsFor:'testing'!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
isEnabled
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    "Bad coding here, state should be full object"
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
3392
8ce7c295de8c class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3197
diff changeset
   132
    ^ state == #enabled or:[ state == #tracing ]
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
    "Created: / 28-06-2011 / 08:27:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3197
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
   135
!
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
   136
4001
c59cafbd9d60 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3759
diff changeset
   137
isTracepoint
c59cafbd9d60 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3759
diff changeset
   138
    ^ condition isNil and:[state == #tracing]
c59cafbd9d60 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3759
diff changeset
   139
!
c59cafbd9d60 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3759
diff changeset
   140
3197
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
   141
isVisible
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
   142
    "Bad coding here, state should be full object"
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
   143
fe2be038af11 class: BreakpointDescription
Claus Gittinger <cg@exept.de>
parents: 3113
diff changeset
   144
    ^state ~~ #hidden
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
! !
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
!BreakpointDescription class methodsFor:'documentation'!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
version
3758
ab86854328e2 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3481
diff changeset
   150
    ^ '$Header$'
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
!
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
version_CVS
3758
ab86854328e2 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3481
diff changeset
   154
    ^ '$Header$'
2552
35d33711f9e6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
! !
3113
4d7936f562c2 class: BreakpointDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2969
diff changeset
   156