Breakpoint.st
author Claus Gittinger <cg@exept.de>
Mon, 11 May 2015 15:20:01 +0200
changeset 3628 febf865a3ca9
parent 3588 9a435f75bc8c
child 3631 88659350da26
permissions -rw-r--r--
class: Structure changed: #initializeOneInstance also understands #respondsTo:
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
3588
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
    14
"{ NameSpace: Smalltalk }"
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
    15
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
Object subclass:#Breakpoint
3509
96499f5b060d Removed code for not-yet-finished new breakpoint support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3491
diff changeset
    17
	instanceVariableNames:'position description line isReached method'
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    18
	classVariableNames:''
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    19
	poolDictionaries:''
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
    20
	category:'System-Compiler-Debugging'
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!Breakpoint class methodsFor:'documentation'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
copyright
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
 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
    28
              All Rights Reserved
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
 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
    32
 inclusion of the above copyright notice.   This software may not
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
 hereby transferred.
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
"
3347
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    37
!
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    38
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    39
documentation
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    40
"
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    41
    statement breakpoint support.
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    42
    Instances of me are placed into a (bytecode-) compiled method's
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    43
    literal array and are sent messages dynamically when a statement
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    44
    with a breakpoint is about to be executed.
07358d349ba3 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3223
diff changeset
    45
"    
2510
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
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
!Breakpoint class methodsFor:'instance creation'!
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
new
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    "return an initialized instance"
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
    ^ self basicNew initialize.
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
3354
ae5f5f1ea5d2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
    56
!Breakpoint class methodsFor:'utilities'!
ae5f5f1ea5d2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
    57
ae5f5f1ea5d2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
    58
disableAllBreakpoints
3491
82c932be88db class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3490
diff changeset
    59
    MethodWithBreakpoints allBreakpointedMethods do:[:m |
82c932be88db class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3490
diff changeset
    60
        m disableAllBreakpoints
3354
ae5f5f1ea5d2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
    61
    ]
ae5f5f1ea5d2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
    62
ae5f5f1ea5d2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
    63
    "Created: / 03-02-2014 / 10:35:55 / cg"
ae5f5f1ea5d2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
    64
! !
ae5f5f1ea5d2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3347
diff changeset
    65
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
!Breakpoint methodsFor:'accessing'!
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
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
    69
    ^ description
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
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
    72
description:aBreakpointDescription
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
    73
    description := aBreakpointDescription.
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
2541
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    76
isReached
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    77
    ^ isReached
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
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    80
isReached:aBoolean
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    81
    isReached := aBoolean.
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    82
!
21bf1e0c7e8d class definition
Claus Gittinger <cg@exept.de>
parents: 2510
diff changeset
    83
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
line
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    ^ line
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
3465
f41acc7867fb class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
    88
line:lineArg
f41acc7867fb class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
    89
    self assert:lineArg >= 0.
f41acc7867fb class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
    90
    line := lineArg.
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
3588
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
    93
method:something
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
    94
    method := something.
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
    95
!
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
    96
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
position
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    ^ position
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
2894
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   101
position:anInteger
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   102
    position := anInteger.
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   103
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   104
    "Modified (format): / 02-08-2012 / 09:26:03 / cg"
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   105
!
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   106
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   107
position:positionArg line:lineArg
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   108
    position := positionArg.
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   109
    line := lineArg.
3465
f41acc7867fb class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3444
diff changeset
   110
    self assert:lineArg >= 0.
2894
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   111
1520aa38f2f3 added: #position:line:
Claus Gittinger <cg@exept.de>
parents: 2797
diff changeset
   112
    "Created: / 02-08-2012 / 09:26:27 / cg"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
!Breakpoint methodsFor:'initialization'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
initialize
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    "Invoked when a new instance is created."
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
    "/ please change as required (and remove this comment)
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
    "/ method := nil.
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
    "/ position := nil.
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   123
    description := BreakpointDescription new.
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    "/ line := nil.
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
    "/ super initialize.   -- commented since inherited method does nothing
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
3509
96499f5b060d Removed code for not-yet-finished new breakpoint support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3491
diff changeset
   128
    "Modified: / 21-08-2014 / 09:35:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
!Breakpoint methodsFor:'printing & storing'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
printOn:aStream
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
    "append a printed representation if the receiver to the argument, aStream"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
3202
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   136
    aStream nextPutAll: 'BPNT at'.
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   137
    position notNil ifTrue:[
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   138
        aStream
3202
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   139
            nextPutAll: ' source position:';
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   140
            nextPutAll: position printString.
3202
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   141
    ].
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   142
    line notNil ifTrue:[
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   143
        aStream
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   144
            nextPutAll: ' line:';
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   145
            nextPutAll: line printString.
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   146
    ].
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   147
    (position isNil and:[line isNil]) ifTrue:[
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   148
        aStream nextPutAll: ' ???'
3149
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   149
    ]
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   150
218843d4d2b9 class: Breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3129
diff changeset
   151
    "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
   152
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
!Breakpoint methodsFor:'support'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
3196
99005bd9a1f7 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   156
beInvisible
99005bd9a1f7 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   157
    "make this breakpoint hidden (in gutter)"
99005bd9a1f7 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   158
99005bd9a1f7 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   159
    description beInvisible
99005bd9a1f7 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   160
!
99005bd9a1f7 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   161
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   162
beTracepoint
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   163
    "make this breakpoint a tracepoint"
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   164
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   165
    description beTracepoint
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   166
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   167
    "Created: / 27-01-2012 / 13:56:11 / cg"
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   168
!
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   169
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
break
2545
da9e57300192 comment/format in: #toggle
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   171
    "invoked by the breakPoint's code (see BreakPointNode)"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    <resource: #skipInDebuggersWalkBack>
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   175
    |sender|
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   176
3223
34bf02a37ac1 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
   177
    description isEnabled ifFalse:[^ self].
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   178
    sender := thisContext sender.
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   179
    (description shouldBreakIn: sender) ifTrue:[
2792
41047dab5b11 class definition
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
   180
        BreakPointInterrupt
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
            raiseRequestWith: self
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   182
            errorString:('Breakpoint encountered at line %1' bindWith:self line)
3490
10ea05a365c2 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3465
diff changeset
   183
            "/ in:sender.
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   184
    ].
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   185
    (description shouldTraceIn: sender) ifTrue:[
2797
8236426dfe4e tracing
Claus Gittinger <cg@exept.de>
parents: 2795
diff changeset
   186
        Transcript 
8236426dfe4e tracing
Claus Gittinger <cg@exept.de>
parents: 2795
diff changeset
   187
            show:Timestamp now;
8236426dfe4e tracing
Claus Gittinger <cg@exept.de>
parents: 2795
diff changeset
   188
            showCR:(' Trace %1 [%2]' bindWith:sender methodPrintString with:self line)
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   189
    ].
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    "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
   192
    "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
   193
    "Modified: / 27-01-2012 / 14:10:22 / cg"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
2968
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   196
disable
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   197
    "disable this breakpoint"
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   198
3588
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
   199
    "/ if there is currently an ignore on this breakpoint in the debugger, remove it
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
   200
    DebugView stopIgnoringHaltsFor:method atLineNr:line.
2968
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   201
    description disable
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   202
!
e69a084842cc added: #disable
Claus Gittinger <cg@exept.de>
parents: 2894
diff changeset
   203
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
toggle
2792
41047dab5b11 class definition
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
   205
    "toggle this breakpoint"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
3588
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
   207
    "/ if there is currently an ignore on this breakpoint in the debugger, remove it
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
   208
    DebugView stopIgnoringHaltsFor:method atLineNr:line.
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   209
    description toggle
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    "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
   212
    "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
   213
    "Modified (comment): / 27-01-2012 / 10:41:03 / cg"
2795
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   214
!
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   215
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   216
toggleTracing
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   217
    "toggle this breakpoint"
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   218
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   219
    description toggleTracing
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   220
69ab29839a96 tracing
Claus Gittinger <cg@exept.de>
parents: 2792
diff changeset
   221
    "Created: / 27-01-2012 / 13:56:05 / cg"
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
! !
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
!Breakpoint methodsFor:'testing'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
isEnabled
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    "Bad coding here, state should be full object"
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
2551
4470029ad63a Breakpoint state extracted to BreakpointDescription object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2545
diff changeset
   230
    ^description isEnabled
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    "Created: / 28-06-2011 / 08:27:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3202
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   233
!
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   234
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   235
isVisible
dc677a63a7ad class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3196
diff changeset
   236
    ^description isVisible
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
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
!Breakpoint class methodsFor:'documentation'!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
2554
31516fc84824 #icon moved to stx:libtool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2551
diff changeset
   241
version
3588
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
   242
    ^ '$Header: /cvs/stx/stx/libcomp/Breakpoint.st,v 1.26 2015-02-16 12:08:16 cg Exp $'
2554
31516fc84824 #icon moved to stx:libtool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2551
diff changeset
   243
!
31516fc84824 #icon moved to stx:libtool
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2551
diff changeset
   244
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
version_CVS
3588
9a435f75bc8c class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3509
diff changeset
   246
    ^ '$Header: /cvs/stx/stx/libcomp/Breakpoint.st,v 1.26 2015-02-16 12:08:16 cg Exp $'
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
!
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
version_SVN
3196
99005bd9a1f7 class: Breakpoint
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   250
    ^ '$ Id $'
2510
98bad3cbfbd8 Initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
! !
3115
3208c8b4661c Some more support for new breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
   252