GDBRegister.st
author Jan Vrany <jan.vrany@labware.com>
Mon, 04 Sep 2023 14:00:57 +0100
changeset 314 4a2ef5a087f0
parent 272 cdd1c9ad00de
permissions -rw-r--r--
Add MI parser test This commit add test to parse real-world frament which failed to Pharo properly at some point. It is encoded here as bytearray to make sure all the characters are preserved exactly as they were.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
jv:libgdbs - GNU Debugger Interface Library
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
     4
Copyright (C) 2022-2023 LabWare
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
     6
Permission is hereby granted, free of charge, to any person obtaining a copy
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
     7
of this software and associated documentation files (the 'Software'), to deal
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
     8
in the Software without restriction, including without limitation the rights
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
     9
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    10
copies of the Software, and to permit persons to whom the Software is
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    11
furnished to do so, subject to the following conditions:
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    13
The above copyright notice and this permission notice shall be included in all
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    14
copies or substantial portions of the Software.
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    16
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    17
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    18
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    19
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    20
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    21
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    22
SOFTWARE.
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
"{ Package: 'jv:libgdbs' }"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
"{ NameSpace: Smalltalk }"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
GDBObject subclass:#GDBRegister
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	instanceVariableNames:'number name'
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	classVariableNames:''
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
	poolDictionaries:''
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
    32
	category:'GDB'
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!GDBRegister class methodsFor:'documentation'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
copyright
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
jv:libgdbs - GNU Debugger Interface Library
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
Copyright (C) 2015-now Jan Vrany
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
    41
Copyright (C) 2022-2023 LabWare
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    43
Permission is hereby granted, free of charge, to any person obtaining a copy
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    44
of this software and associated documentation files (the 'Software'), to deal
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    45
in the Software without restriction, including without limitation the rights
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    46
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    47
copies of the Software, and to permit persons to whom the Software is
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    48
furnished to do so, subject to the following conditions:
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    50
The above copyright notice and this permission notice shall be included in all
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    51
copies or substantial portions of the Software.
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    53
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    54
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    55
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    56
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    57
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    58
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    59
SOFTWARE.
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
documentation
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    a `GDBRegister` instance represent a single machine 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    register. 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    It does not hold a value - value is held in 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    `GDBRegisterWithValue`
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    [author:]
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
        Jan Vrany <jan.vrany@fit.cvut.cz>
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    [instance variables:]
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    [class variables:]
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    [see also:]
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
        GDNRegisterWithValue
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
        GDBFrame >> registers
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
!GDBRegister methodsFor:'accessing'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
name
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    ^ name
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
number
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    ^ number
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
!GDBRegister methodsFor:'initialization'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
setName: aString
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    name := aString
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    "Created: / 26-09-2018 / 10:06:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
setNumber: aNumber
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    number := aNumber
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    "Created: / 26-09-2018 / 10:06:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!GDBRegister methodsFor:'printing & storing'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
printOn:aStream
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    "append a printed representation of the receiver to the argument, aStream"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    super printOn:aStream.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    aStream nextPut:$(.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    name printOn:aStream.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    aStream nextPut:$).
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
    "Modified: / 26-09-2018 / 10:10:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122