blob: afd48915e55ada7b761624d459f469f1a7ab43b5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
//===-- SWIG Interface for SBValueList --------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
namespace lldb {
%feature("docstring",
"Represents a collection of SBValues. Both SBFrame's GetVariables() and
GetRegisters() return a SBValueList.
SBValueList supports SBValue iteration. For example (from test/lldbutil.py),
def get_registers(frame, kind):
'''Returns the registers given the frame and the kind of registers desired.
Returns None if there's no such kind.
'''
registerSet = frame.GetRegisters() # Return type of SBValueList.
for value in registerSet:
if kind.lower() in value.GetName().lower():
return value
return None
def get_GPRs(frame):
'''Returns the general purpose registers of the frame as an SBValue.
The returned SBValue object is iterable. An example:
...
from lldbutil import get_GPRs
regs = get_GPRs(frame)
for reg in regs:
print '%s => %s' % (reg.GetName(), reg.GetValue())
...
'''
return get_registers(frame, 'general purpose')
def get_FPRs(frame):
'''Returns the floating point registers of the frame as an SBValue.
The returned SBValue object is iterable. An example:
...
from lldbutil import get_FPRs
regs = get_FPRs(frame)
for reg in regs:
print '%s => %s' % (reg.GetName(), reg.GetValue())
...
'''
return get_registers(frame, 'floating point')
def get_ESRs(frame):
'''Returns the exception state registers of the frame as an SBValue.
The returned SBValue object is iterable. An example:
...
from lldbutil import get_ESRs
regs = get_ESRs(frame)
for reg in regs:
print '%s => %s' % (reg.GetName(), reg.GetValue())
...
'''
return get_registers(frame, 'exception state')"
) SBValueList;
class SBValueList
{
public:
SBValueList ();
SBValueList (const lldb::SBValueList &rhs);
~SBValueList();
bool
IsValid() const;
void
Clear();
void
Append (const lldb::SBValue &val_obj);
void
Append (const lldb::SBValueList& value_list);
uint32_t
GetSize() const;
lldb::SBValue
GetValueAtIndex (uint32_t idx) const;
lldb::SBValue
FindValueObjectByUID (lldb::user_id_t uid);
};
} // namespace lldb
|