@@ -120,6 +120,7 @@ Class& LLDBParser::enumerateClass(lldb::SBType& type) {
120
120
auto &c = makeType<Class>(type, kind, displayName, name, size, virtuality);
121
121
122
122
enumerateClassMembers (type, c.members );
123
+ enumerateClassFunctions (type, c.functions );
123
124
124
125
return c;
125
126
}
@@ -128,6 +129,7 @@ void LLDBParser::enumerateClassMembers(lldb::SBType& type, std::vector<Member>&
128
129
assert (members.empty ());
129
130
members.reserve (type.GetNumberOfFields ());
130
131
132
+ /* TODO: We are missing the _vptr */
131
133
for (uint32_t i = 0 ; i < type.GetNumberOfFields (); i++) {
132
134
auto field = type.GetFieldAtIndex (i);
133
135
if (field.GetName () == nullptr )
@@ -146,6 +148,19 @@ void LLDBParser::enumerateClassMembers(lldb::SBType& type, std::vector<Member>&
146
148
});
147
149
}
148
150
151
+ void LLDBParser::enumerateClassFunctions (lldb::SBType &type, std::vector<Function>& functions) {
152
+ assert (functions.empty ());
153
+ functions.reserve (type.GetNumberOfMemberFunctions ());
154
+
155
+ /* TODO: We are missing the default constructors */
156
+ for (uint32_t i = 0 ; i < type.GetNumberOfMemberFunctions (); i++) {
157
+ auto function = type.GetMemberFunctionAtIndex (i);
158
+
159
+ /* TODO: We don't know if the function is virtual */
160
+ functions.emplace_back (function.GetName (), false );
161
+ }
162
+ }
163
+
149
164
Enum& LLDBParser::enumerateEnum (lldb::SBType& type) {
150
165
const char *typeName = type.GetName ();
151
166
std::string name = typeName ? typeName : " " ;
0 commit comments