@@ -270,7 +270,36 @@ class TargetReflectionContext
270
270
const swift::reflection::TypeInfo *
271
271
getTypeInfo (const swift::reflection::TypeRef *type_ref,
272
272
swift::remote::TypeInfoProvider *provider) override {
273
- return m_reflection_ctx.getTypeInfo (type_ref, provider);
273
+ if (!type_ref)
274
+ return nullptr ;
275
+
276
+ Log *log (GetLog (LLDBLog::Types));
277
+ if (log && log->GetVerbose ()) {
278
+ std::stringstream ss;
279
+ type_ref->dump (ss);
280
+ LLDB_LOG (log, " [TargetReflectionContext::getTypeInfo] Getting "
281
+ " type info for typeref:\n %s" ,
282
+ ss.str ());
283
+ }
284
+
285
+ auto type_info = m_reflection_ctx.getTypeInfo (type_ref, provider);
286
+ if (log && !type_info) {
287
+ std::stringstream ss;
288
+ type_ref->dump (ss);
289
+ LLDB_LOG (log,
290
+ " [TargetReflectionContext::getTypeInfo] Could not get "
291
+ " type info for typeref:\n %s" ,
292
+ ss.str ());
293
+ }
294
+
295
+ if (log && log->GetVerbose ()) {
296
+ std::stringstream ss;
297
+ type_info->dump (ss);
298
+ log->Printf (" [TargetReflectionContext::getTypeInfo] Found "
299
+ " type info:\n %s" ,
300
+ ss.str ().c_str ());
301
+ }
302
+ return type_info;
274
303
}
275
304
276
305
swift::reflection::MemoryReader &getReader () override {
@@ -3173,6 +3202,12 @@ lldb::addr_t SwiftLanguageRuntimeImpl::FixupAddress(lldb::addr_t addr,
3173
3202
const swift::reflection::TypeRef *
3174
3203
SwiftLanguageRuntimeImpl::GetTypeRef (CompilerType type,
3175
3204
TypeSystemSwiftTypeRef *module_holder) {
3205
+ Log *log (GetLog (LLDBLog::Types));
3206
+ if (log && log->GetVerbose ())
3207
+ LLDB_LOG (log, " [SwiftLanguageRuntimeImpl::GetTypeRef] Getting typeref for "
3208
+ " type: %s\n " ,
3209
+ type.GetMangledTypeName ());
3210
+
3176
3211
// Demangle the mangled name.
3177
3212
swift::Demangle::Demangler dem;
3178
3213
ConstString mangled_name = type.GetMangledTypeName ();
@@ -3190,17 +3225,37 @@ SwiftLanguageRuntimeImpl::GetTypeRef(CompilerType type,
3190
3225
return nullptr ;
3191
3226
3192
3227
auto type_ref_or_err =
3193
- swift::Demangle::decodeMangledType (reflection_ctx->getBuilder (), node);
3194
- if (type_ref_or_err.isError ())
3228
+ swift::Demangle::decodeMangledType (reflection_ctx->getBuilder (), node);
3229
+ if (type_ref_or_err.isError ()) {
3230
+ LLDB_LOG (log,
3231
+ " [SwiftLanguageRuntimeImpl::GetTypeRef] Could not find typeref "
3232
+ " for type: %s. Decode mangled type failed. Error: %s\n ." ,
3233
+ type.GetMangledTypeName (),
3234
+ type_ref_or_err.getError ()->copyErrorString ());
3195
3235
return nullptr ;
3236
+ }
3196
3237
const swift::reflection::TypeRef *type_ref = type_ref_or_err.getType ();
3238
+ if (log && log->GetVerbose ()) {
3239
+ std::stringstream ss;
3240
+ type_ref->dump (ss);
3241
+ LLDB_LOG (log, " [SwiftLanguageRuntimeImpl::GetTypeRef] Found typeref for "
3242
+ " type: %s:\n %s" ,
3243
+ type.GetMangledTypeName (), ss.str ());
3244
+ }
3197
3245
return type_ref;
3198
3246
}
3199
3247
3200
3248
const swift::reflection::TypeInfo *
3201
3249
SwiftLanguageRuntimeImpl::GetSwiftRuntimeTypeInfo (
3202
3250
CompilerType type, ExecutionContextScope *exe_scope,
3203
3251
swift::reflection::TypeRef const **out_tr) {
3252
+ Log *log (GetLog (LLDBLog::Types));
3253
+
3254
+ if (log && log->GetVerbose ())
3255
+ LLDB_LOG (log, " [SwiftLanguageRuntimeImpl::GetSwiftRuntimeTypeInfo] Getting "
3256
+ " type info for type: %s\n " ,
3257
+ type.GetMangledTypeName ());
3258
+
3204
3259
auto ts = type.GetTypeSystem ().dyn_cast_or_null <TypeSystemSwift>();
3205
3260
if (!ts)
3206
3261
return nullptr ;
0 commit comments