GDBMI_var_update.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 26 May 2017 08:05:28 +0100
changeset 78 c24e7d8bc881
parent 12 568a2971c977
child 91 472a4841a8b6
permissions -rw-r--r--
BUpdated build files.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:libgdbs' }"
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
78
c24e7d8bc881 BUpdated build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
     3
"{ NameSpace: Smalltalk }"
c24e7d8bc881 BUpdated build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
     4
12
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
GDBMICommand subclass:#GDBMI_var_update
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'GDB-Core-Commands-MI'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!GDBMI_var_update class methodsFor:'documentation'!
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
documentation
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
"
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
The `-var-update' Command
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
-------------------------
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
Synopsis
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
........
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
      -var-update [PRINT-VALUES] {NAME | '*'}
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
   Reevaluate the expressions corresponding to the variable object NAME
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
and all its direct and indirect children, and return the list of
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
variable objects whose values have changed; NAME must be a root
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
variable object.  Here, 'changed' means that the result of
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
`-var-evaluate-expression' before and after the `-var-update' is
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
different.  If `*' is used as the variable object names, all existing
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
variable objects are updated, except for frozen ones (*note
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
-var-set-frozen::).  The option PRINT-VALUES determines whether both
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
names and values, or just names are printed.  The possible values of
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
this option are the same as for `-var-list-children' (*note
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
-var-list-children::).  It is recommended to use the `--all-values'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
option, to reduce the number of MI commands needed on each program stop.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
   With the `*' parameter, if a variable object is bound to a currently
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
running thread, it will not be updated, without any diagnostic.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
   If `-var-set-update-range' was previously used on a varobj, then
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
only the selected range of children will be reported.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
   `-var-update' reports all the changed varobjs in a tuple named
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
`changelist'.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
   Each item in the change list is itself a tuple holding:
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
`name'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
     The name of the varobj.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
`value'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
     If values were requested for this update, then this field will be
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
     present and will hold the value of the varobj.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
`in_scope'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
     This field is a string which may take one of three values:
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    `'true''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
          The variable object's current value is valid.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    `'false''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
          The variable object does not currently hold a valid value but
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
          it may hold one in the future if its associated expression
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
          comes back into scope.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    `'invalid''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
          The variable object no longer holds a valid value.  This can
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
          occur when the executable file being debugged has changed,
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
          either through recompilation or by using the {No value for
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
          `GDBN'} `file' command.  The front end should normally choose
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
          to delete these variable objects.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
     In the future new values may be added to this list so the front
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
     should be prepared for this possibility.  *Note GDB/MI Development
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
     and Front Ends: GDB/MI Development and Front Ends.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
`type_changed'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
     This is only present if the varobj is still valid.  If the type
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
     changed, then this will be the string `true'; otherwise it will be
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
     `false'.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
     When a varobj's type changes, its children are also likely to have
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
     become incorrect.  Therefore, the varobj's children are
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
     automatically deleted when this attribute is `true'.  Also, the
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
     varobj's update range, when set using the `-var-set-update-range'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
     command, is unset.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
`new_type'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
     If the varobj's type changed, then this field will be present and
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
     will hold the new type.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
`new_num_children'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
     For a dynamic varobj, if the number of children changed, or if the
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
     type changed, this will be the new number of children.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
     The `numchild' field in other varobj responses is generally not
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
     valid for a dynamic varobj - it will show the number of children
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
     that {No value for `GDBN'} knows about, but because dynamic
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
     varobjs lazily instantiate their children, this will not reflect
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
     the number of children which may be available.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
     The `new_num_children' attribute only reports changes to the
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
     number of children known by {No value for `GDBN'}.  This is the
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
     only way to detect whether an update has removed children (which
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
     necessarily can only happen at the end of the update range).
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
`displayhint'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
     The display hint, if any.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
`has_more'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
     This is an integer value, which will be 1 if there are more
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
     children available outside the varobj's update range.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
`dynamic'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
     This attribute will be present and have the value `1' if the
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
     varobj is a dynamic varobj.  If the varobj is not a dynamic varobj,
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
     then this attribute will not be present.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
`new_children'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
     If new children were added to a dynamic varobj within the selected
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
     update range (as set by `-var-set-update-range'), then they will
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
     be listed in this attribute.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
Example
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
.......
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
     -var-assign var1 3
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
     ^done,value='3'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
     -var-update --all-values var1
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
     ^done,changelist=[{name='var1',value='3',in_scope='true',
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
     type_changed='false'}]
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
"
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
! !
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
!GDBMI_var_update methodsFor:'accessing'!
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
operation
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
	^ 'var-update'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
! !
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145