17be5a4fbd576ca1aa35f83fa9e696e2f53463847Johnny Chen//===-- SWIG Interface for SBValue ------------------------------*- C++ -*-===//
2854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen//
3854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen//                     The LLVM Compiler Infrastructure
4854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen//
5854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen// This file is distributed under the University of Illinois Open Source
6854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen// License. See LICENSE.TXT for details.
7854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen//
8854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen//===----------------------------------------------------------------------===//
9854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
10854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chennamespace lldb {
11854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
12854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen%feature("docstring",
13854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen"Represents the value of a variable, a register, or an expression.
14854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
15854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenSBValue supports iteration through its child, which in turn is represented
16854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chenas an SBValue.  For example, we can get the general purpose registers of a
17854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chenframe as an SBValue, and iterate through all the registers,
18854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
19854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    registerSet = frame.GetRegisters() # Returns an SBValueList.
20854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    for regs in registerSet:
21854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen        if 'general purpose registers' in regs.getName().lower():
22854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen            GPRs = regs
23854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen            break
24854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
25854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    print '%s (number of children = %d):' % (GPRs.GetName(), GPRs.GetNumChildren())
26854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    for reg in GPRs:
27854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen        print 'Name: ', reg.GetName(), ' Value: ', reg.GetValue()
28854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
29854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chenproduces the output:
30854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
31854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenGeneral Purpose Registers (number of children = 21):
32854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rax  Value:  0x0000000100000c5c
33854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rbx  Value:  0x0000000000000000
34854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rcx  Value:  0x00007fff5fbffec0
35854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rdx  Value:  0x00007fff5fbffeb8
36854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rdi  Value:  0x0000000000000001
37854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rsi  Value:  0x00007fff5fbffea8
38854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rbp  Value:  0x00007fff5fbffe80
39854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rsp  Value:  0x00007fff5fbffe60
40854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  r8  Value:  0x0000000008668682
41854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  r9  Value:  0x0000000000000000
42854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  r10  Value:  0x0000000000001200
43854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  r11  Value:  0x0000000000000206
44854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  r12  Value:  0x0000000000000000
45854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  r13  Value:  0x0000000000000000
46854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  r14  Value:  0x0000000000000000
47854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  r15  Value:  0x0000000000000000
48854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rip  Value:  0x0000000100000dae
49854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  rflags  Value:  0x0000000000000206
50854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  cs  Value:  0x0000000000000027
51854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny ChenName:  fs  Value:  0x0000000000000010
52de856cc86c68a51e93aa72b8a478faf50de663c0Johnny ChenName:  gs  Value:  0x0000000000000048
53de856cc86c68a51e93aa72b8a478faf50de663c0Johnny Chen
54de856cc86c68a51e93aa72b8a478faf50de663c0Johnny ChenSee also linked_list_iter() for another perspective on how to iterate through an
55de856cc86c68a51e93aa72b8a478faf50de663c0Johnny ChenSBValue instance which interprets the value object as representing the head of a
56de856cc86c68a51e93aa72b8a478faf50de663c0Johnny Chenlinked list."
57c3fba812b636dcdede81be622d557efbdc834240Johnny Chen) SBValue;
58854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chenclass SBValue
59854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen{
60854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chenpublic:
61854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    SBValue ();
62854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
63854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    SBValue (const SBValue &rhs);
64854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
65854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ~SBValue ();
66854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
67854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    bool
68d68e089f8353eaf845c3559dac6d47b32830974fGreg Clayton    IsValid();
69854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
70e0bd571a8050da2b3462c35c9f209cbc9755c750Jim Ingham    void
71e0bd571a8050da2b3462c35c9f209cbc9755c750Jim Ingham    Clear();
72e0bd571a8050da2b3462c35c9f209cbc9755c750Jim Ingham
73854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    SBError
74854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetError();
75854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
76854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    lldb::user_id_t
77854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetID ();
78854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
79854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    const char *
80854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetName();
81854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
82854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    const char *
83854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetTypeName ();
84854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
85854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    size_t
86854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetByteSize ();
87854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
88854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    bool
89854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    IsInScope ();
90854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
91854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    lldb::Format
92d68e089f8353eaf845c3559dac6d47b32830974fGreg Clayton    GetFormat ();
93854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
94854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    void
95854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    SetFormat (lldb::Format format);
96854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
97854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    const char *
98854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetValue ();
99854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
1000fb0bcc9d4e951145e1b8c783652224c09b23af4Greg Clayton    int64_t
101c92eb4004a354b0ea085b610b2ba991e575b1c32Enrico Granata    GetValueAsSigned(SBError& error, int64_t fail_value=0);
1020fb0bcc9d4e951145e1b8c783652224c09b23af4Greg Clayton
1030fb0bcc9d4e951145e1b8c783652224c09b23af4Greg Clayton    uint64_t
104c92eb4004a354b0ea085b610b2ba991e575b1c32Enrico Granata    GetValueAsUnsigned(SBError& error, uint64_t fail_value=0);
105c92eb4004a354b0ea085b610b2ba991e575b1c32Enrico Granata
106c92eb4004a354b0ea085b610b2ba991e575b1c32Enrico Granata    int64_t
107c92eb4004a354b0ea085b610b2ba991e575b1c32Enrico Granata    GetValueAsSigned(int64_t fail_value=0);
108c92eb4004a354b0ea085b610b2ba991e575b1c32Enrico Granata
109c92eb4004a354b0ea085b610b2ba991e575b1c32Enrico Granata    uint64_t
1100fb0bcc9d4e951145e1b8c783652224c09b23af4Greg Clayton    GetValueAsUnsigned(uint64_t fail_value=0);
1110fb0bcc9d4e951145e1b8c783652224c09b23af4Greg Clayton
112854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ValueType
113854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetValueType ();
114854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
115854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    bool
116854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetValueDidChange ();
117854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
118854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    const char *
119854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetSummary ();
120854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
121854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    const char *
122854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetObjectDescription ();
123854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
1241b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham    lldb::SBValue
1251b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham    GetDynamicValue (lldb::DynamicValueType use_dynamic);
1261b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham
1271b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham    lldb::SBValue
1281b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham    GetStaticValue ();
1291b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham
130dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata    lldb::SBValue
131dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata    GetNonSyntheticValue ();
1323d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata
1333d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    lldb::DynamicValueType
1343d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    GetPreferDynamicValue ();
1353d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata
1363d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    void
1373d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    SetPreferDynamicValue (lldb::DynamicValueType use_dynamic);
1383d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata
1393d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    bool
1403d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    GetPreferSyntheticValue ();
1413d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata
1423d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    void
1433d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    SetPreferSyntheticValue (bool use_synthetic);
144dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata
1451b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham    bool
1461b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham    IsDynamic();
1473d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata
1483d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    bool
1493d656c729a1ed0abad4e5a2d76f6e8a6904f66aaEnrico Granata    IsSynthetic ();
1501b42575189379cb0c1441f74a48127e9ab7335e3Jim Ingham
151854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    const char *
152854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetLocation ();
153854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
154854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    bool
155854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    SetValueFromCString (const char *value_str);
156854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
157651cbe2e3f6efb8bd579a5007c2d2f90f0ab7633Enrico Granata    bool
158651cbe2e3f6efb8bd579a5007c2d2f90f0ab7633Enrico Granata    SetValueFromCString (const char *value_str, lldb::SBError& error);
159651cbe2e3f6efb8bd579a5007c2d2f90f0ab7633Enrico Granata
160d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata    lldb::SBTypeFormat
161d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata    GetTypeFormat ();
162d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata
163d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata    lldb::SBTypeSummary
164d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata    GetTypeSummary ();
165d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata
166d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata    lldb::SBTypeFilter
167d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata    GetTypeFilter ();
168d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata
169d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata    lldb::SBTypeSynthetic
170d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata    GetTypeSynthetic ();
171d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata
172854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    lldb::SBValue
173854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetChildAtIndex (uint32_t idx);
174854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
175854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    %feature("docstring", "
176854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    //------------------------------------------------------------------
177854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Get a child value by index from a value.
178854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
179854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Structs, unions, classes, arrays and and pointers have child
180854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// values that can be access by index.
181854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
182854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Structs and unions access child members using a zero based index
183854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// for each child member. For
184854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
185854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Classes reserve the first indexes for base classes that have
186854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// members (empty base classes are omitted), and all members of the
187854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// current class will then follow the base classes.
188854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
189854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Pointers differ depending on what they point to. If the pointer
190854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// points to a simple type, the child at index zero
191854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// is the only child value available, unless \a synthetic_allowed
192854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// is \b true, in which case the pointer will be used as an array
193854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// and can create 'synthetic' child values using positive or
194854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// negative indexes. If the pointer points to an aggregate type
195854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// (an array, class, union, struct), then the pointee is
196854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// transparently skipped and any children are going to be the indexes
197854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// of the child values within the aggregate type. For example if
198854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// we have a 'Point' type and we have a SBValue that contains a
199854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// pointer to a 'Point' type, then the child at index zero will be
200854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// the 'x' member, and the child at index 1 will be the 'y' member
201854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// (the child at index zero won't be a 'Point' instance).
202854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
203854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Arrays have a preset number of children that can be accessed by
204854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// index and will returns invalid child values for indexes that are
205854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// out of bounds unless the \a synthetic_allowed is \b true. In this
206854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// case the array can create 'synthetic' child values for indexes
207854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// that aren't in the array bounds using positive or negative
208854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// indexes.
209854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
210854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @param[in] idx
211854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     The index of the child value to get
212854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
213854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @param[in] use_dynamic
214854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     An enumeration that specifies wether to get dynamic values,
215854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     and also if the target can be run to figure out the dynamic
216854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     type of the child value.
217854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
218854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @param[in] synthetic_allowed
219854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     If \b true, then allow child values to be created by index
220854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     for pointers and arrays for indexes that normally wouldn't
221854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     be allowed.
222854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
223854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @return
224854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     A new SBValue object that represents the child member value.
225854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    //------------------------------------------------------------------
226854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ") GetChildAtIndex;
227854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    lldb::SBValue
228854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetChildAtIndex (uint32_t idx,
229854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen                     lldb::DynamicValueType use_dynamic,
230854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen                     bool can_create_synthetic);
231979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
232979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBValue
233d68e089f8353eaf845c3559dac6d47b32830974fGreg Clayton    CreateChildAtOffset (const char *name, uint32_t offset, lldb::SBType type);
234979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
235979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBValue
236d68e089f8353eaf845c3559dac6d47b32830974fGreg Clayton    SBValue::Cast (lldb::SBType type);
237854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
238979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBValue
239979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    CreateValueFromExpression (const char *name, const char* expression);
24047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
24147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    lldb::SBValue
24247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    CreateValueFromExpression (const char *name, const char* expression, SBExpressionOptions &options);
243979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
244979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBValue
245d68e089f8353eaf845c3559dac6d47b32830974fGreg Clayton    CreateValueFromAddress(const char* name, lldb::addr_t address, lldb::SBType type);
246979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
247915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	lldb::SBValue
248915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	CreateValueFromData (const char* name,
249d68e089f8353eaf845c3559dac6d47b32830974fGreg Clayton	                     lldb::SBData data,
250d68e089f8353eaf845c3559dac6d47b32830974fGreg Clayton	                     lldb::SBType type);
251915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata
252979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBType
253979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    GetType();
254979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
255854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    %feature("docstring", "
256854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    //------------------------------------------------------------------
257854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Returns the child member index.
258854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
259854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Matches children of this object only and will match base classes and
260854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// member names if this is a clang typed object.
261854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
262854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @param[in] name
263854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     The name of the child value to get
264854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
265854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @return
266854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     An index to the child member value.
267854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    //------------------------------------------------------------------
268854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ") GetIndexOfChildWithName;
269854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    uint32_t
270854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetIndexOfChildWithName (const char *name);
271854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
272854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    lldb::SBValue
273854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetChildMemberWithName (const char *name);
274854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
275854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    %feature("docstring", "
276854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    //------------------------------------------------------------------
277854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Returns the child member value.
278854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
279854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// Matches child members of this object and child members of any base
280854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// classes.
281854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
282854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @param[in] name
283854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     The name of the child value to get
284854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
285854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @param[in] use_dynamic
286854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     An enumeration that specifies wether to get dynamic values,
287854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     and also if the target can be run to figure out the dynamic
288854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     type of the child value.
289854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///
290854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    /// @return
291854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ///     A new SBValue object that represents the child member value.
292854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    //------------------------------------------------------------------
293854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ") GetChildMemberWithName;
294854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    lldb::SBValue
295854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetChildMemberWithName (const char *name, lldb::DynamicValueType use_dynamic);
296854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
297854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    %feature("docstring", "Expands nested expressions like .a->b[0].c[1]->d."
298854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    ) GetValueForExpressionPath;
299854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    lldb::SBValue
300854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetValueForExpressionPath(const char* expr_path);
301854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
30249306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata    lldb::SBDeclaration
30349306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata    GetDeclaration ();
30449306144bb37f0b3423d992f17cdcc24703374b4Enrico Granata
30554037b1488e3344575714d8358728e042fa801c7Greg Clayton    bool
30654037b1488e3344575714d8358728e042fa801c7Greg Clayton    MightHaveChildren ();
30754037b1488e3344575714d8358728e042fa801c7Greg Clayton
308854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    uint32_t
309854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetNumChildren ();
310854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
311854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    void *
312854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetOpaqueType();
313854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
314854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    lldb::SBValue
315854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    Dereference ();
316854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
317979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBValue
318979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    AddressOf();
319979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
320854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    bool
321854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    TypeIsPointerType ();
322979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
323979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBTarget
324979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    GetTarget();
325854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
326979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBProcess
327979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    GetProcess();
328979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
329979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBThread
330979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    GetThread();
331979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
332979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    lldb::SBFrame
333979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata    GetFrame();
334979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata
335ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen    %feature("docstring", "
336ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen    /// Find and watch a variable.
337ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen    /// It returns an SBWatchpoint, which may be invalid.
338ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen    ") Watch;
3391fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton    lldb::SBWatchpoint
3403f883496e92fce5011f6bf585af3ac6d1cddb64fJohnny Chen    Watch (bool resolve_location, bool read, bool write, SBError &error);
3411fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton
342ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen    %feature("docstring", "
343ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen    /// Find and watch the location pointed to by a variable.
344ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen    /// It returns an SBWatchpoint, which may be invalid.
345ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen    ") WatchPointee;
3461fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton    lldb::SBWatchpoint
3473f883496e92fce5011f6bf585af3ac6d1cddb64fJohnny Chen    WatchPointee (bool resolve_location, bool read, bool write, SBError &error);
3481fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton
349854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    bool
350854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetDescription (lldb::SBStream &description);
351854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
352854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    bool
353854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetExpressionPath (lldb::SBStream &description);
354915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata
355915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	%feature("docstring", "
356915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	//------------------------------------------------------------------
357915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// Get an SBData wrapping what this SBValue points to.
358915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///
359915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// This method will dereference the current SBValue, if its
360915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// data type is a T* or T[], and extract item_count elements
361915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// of type T from it, copying their contents in an SBData.
362915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///
363915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// @param[in] item_idx
364915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     The index of the first item to retrieve. For an array
365915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     this is equivalent to array[item_idx], for a pointer
366915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     to *(pointer + item_idx). In either case, the measurement
367915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     unit for item_idx is the sizeof(T) rather than the byte
368915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///
369915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// @param[in] item_count
370915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     How many items should be copied into the output. By default
371915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     only one item is copied, but more can be asked for.
372915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///
373915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// @return
374915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     An SBData with the contents of the copied items, on success.
375915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     An empty SBData otherwise.
376915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    //------------------------------------------------------------------
377915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	") GetPointeeData;
378915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	lldb::SBData
379915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	GetPointeeData (uint32_t item_idx = 0,
380915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata					uint32_t item_count = 1);
381915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata
382915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    %feature("docstring", "
383915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	//------------------------------------------------------------------
384915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// Get an SBData wrapping the contents of this SBValue.
385915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///
386915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// This method will read the contents of this object in memory
387915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// and copy them into an SBData for future use.
388915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///
389915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    /// @return
390915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     An SBData with the contents of this SBValue, on success.
391915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ///     An empty SBData otherwise.
392915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    //------------------------------------------------------------------
393915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	") GetData;
394915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    lldb::SBData
395915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    GetData ();
396847a0ad45234f216384c3d994ef6d0bc3f14c2caSean Callanan
397847a0ad45234f216384c3d994ef6d0bc3f14c2caSean Callanan    bool
398847a0ad45234f216384c3d994ef6d0bc3f14c2caSean Callanan    SetData (lldb::SBData &data, lldb::SBError& error);
399915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata
400915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	lldb::addr_t
401915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	GetLoadAddress();
402915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata
403915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	lldb::SBAddress
404915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata	GetAddress();
405854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
406854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    %feature("docstring", "Returns an expression path for this value."
407915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata    ) GetExpressionPath;
408854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    bool
409854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen    GetExpressionPath (lldb::SBStream &description, bool qualify_cxx_base_classes);
4101b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4111b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton    %pythoncode %{
412d41abdc25bee7dd73b482d65c391255f55c1df0dGreg Clayton        def __get_dynamic__ (self):
413d41abdc25bee7dd73b482d65c391255f55c1df0dGreg Clayton            '''Helper function for the "SBValue.dynamic" property.'''
414d41abdc25bee7dd73b482d65c391255f55c1df0dGreg Clayton            return self.GetDynamicValue (eDynamicCanRunTarget)
415d41abdc25bee7dd73b482d65c391255f55c1df0dGreg Clayton
4161b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["name"] = GetName
4172a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: name = property(GetName, None, doc='''A read only property that returns the name of this value as a string.''')
4181b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4191b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["type"] = GetType
4202a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: type = property(GetType, None, doc='''A read only property that returns a lldb.SBType object that represents the type for this value.''')
4211b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4221b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["size"] = GetByteSize
4232a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this value.''')
4241b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4251b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["is_in_scope"] = IsInScope
4262a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: is_in_scope = property(IsInScope, None, doc='''A read only property that returns a boolean value that indicates whether this value is currently lexically in scope.''')
4271b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4281b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["format"] = GetFormat
4291b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_setmethods__["format"] = SetFormat
4302a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: format = property(GetName, SetFormat, doc='''A read/write property that gets/sets the format used for lldb.SBValue().GetValue() for this value. See enumerations that start with "lldb.eFormat".''')
4311b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4321b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["value"] = GetValue
4331b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_setmethods__["value"] = SetValueFromCString
4342a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: value = property(GetValue, SetValueFromCString, doc='''A read/write property that gets/sets value from a string.''')
4351b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4361b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["value_type"] = GetValueType
4372a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: value_type = property(GetValueType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eValueType") that represents the type of this value (local, argument, global, register, etc.).''')
4381b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4391b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["changed"] = GetValueDidChange
4402a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: changed = property(GetValueDidChange, None, doc='''A read only property that returns a boolean value that indicates if this value has changed since it was last updated.''')
4411b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4421b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["data"] = GetData
4432a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: data = property(GetData, None, doc='''A read only property that returns an lldb object (lldb.SBData) that represents the bytes that make up the value for this object.''')
4441b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4451b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["load_addr"] = GetLoadAddress
4462a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: load_addr = property(GetLoadAddress, None, doc='''A read only property that returns the load address of this value as an integer.''')
4471b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4481b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["addr"] = GetAddress
4492a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: addr = property(GetAddress, None, doc='''A read only property that returns an lldb.SBAddress that represents the address of this value if it is in memory.''')
4501b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4511b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["deref"] = Dereference
4522a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: deref = property(Dereference, None, doc='''A read only property that returns an lldb.SBValue that is created by dereferencing this value.''')
4531b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4541b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["address_of"] = AddressOf
4552a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: address_of = property(AddressOf, None, doc='''A read only property that returns an lldb.SBValue that represents the address-of this value.''')
4561b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4571b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["error"] = GetError
4582a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: error = property(GetError, None, doc='''A read only property that returns the lldb.SBError that represents the error from the last time the variable value was calculated.''')
4591b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4601b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["summary"] = GetSummary
4612a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: summary = property(GetSummary, None, doc='''A read only property that returns the summary for this value as a string''')
4621b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4631b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["description"] = GetObjectDescription
4642a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: description = property(GetObjectDescription, None, doc='''A read only property that returns the language-specific description of this value as a string''')
465d41abdc25bee7dd73b482d65c391255f55c1df0dGreg Clayton
466d41abdc25bee7dd73b482d65c391255f55c1df0dGreg Clayton        __swig_getmethods__["dynamic"] = __get_dynamic__
4672a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: dynamic = property(__get_dynamic__, None, doc='''A read only property that returns an lldb.SBValue that is created by finding the dynamic type of this value.''')
468d41abdc25bee7dd73b482d65c391255f55c1df0dGreg Clayton
4691b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["location"] = GetLocation
4702a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: location = property(GetLocation, None, doc='''A read only property that returns the location of this value as a string.''')
4711b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4721b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["target"] = GetTarget
4732a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: target = property(GetTarget, None, doc='''A read only property that returns the lldb.SBTarget that this value is associated with.''')
4741b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4751b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["process"] = GetProcess
4762a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: process = property(GetProcess, None, doc='''A read only property that returns the lldb.SBProcess that this value is associated with, the returned value might be invalid and should be tested.''')
4771b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4781b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["thread"] = GetThread
4792a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: thread = property(GetThread, None, doc='''A read only property that returns the lldb.SBThread that this value is associated with, the returned value might be invalid and should be tested.''')
4801b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4811b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["frame"] = GetFrame
4822a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: frame = property(GetFrame, None, doc='''A read only property that returns the lldb.SBFrame that this value is associated with, the returned value might be invalid and should be tested.''')
4831b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
4841b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton        __swig_getmethods__["num_children"] = GetNumChildren
4852a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: num_children = property(GetNumChildren, None, doc='''A read only property that returns the number of child lldb.SBValues that this value has.''')
4861b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
487d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton        __swig_getmethods__["unsigned"] = GetValueAsUnsigned
4882a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this SBValue as an usigned integer.''')
489d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton
490d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton        __swig_getmethods__["signed"] = GetValueAsSigned
4912a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this SBValue as a signed integer.''')
492d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton
493d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton        def get_expr_path(self):
494d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton            s = SBStream()
495d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton            self.GetExpressionPath (s)
496d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton            return s.GetData()
497d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton
498d62b9c18f3fc567fa536e04faadd518cd363a22eGreg Clayton        __swig_getmethods__["path"] = get_expr_path
4992a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: path = property(get_expr_path, None, doc='''A read only property that returns the expression path that one can use to reach this value in an expression.''')
5001b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton    %}
5011b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton
502854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen};
503854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen
504854a1ba617fded6eb054b3f93b3299d0a7173ca1Johnny Chen} // namespace lldb
505