diff options
Diffstat (limited to 'lldb/source/Core/ValueObject.cpp')
| -rw-r--r-- | lldb/source/Core/ValueObject.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp index 47b0c76359d..1307da92052 100644 --- a/lldb/source/Core/ValueObject.cpp +++ b/lldb/source/Core/ValueObject.cpp @@ -590,6 +590,18 @@ ValueObject::GetObjectDescription (ExecutionContextScope *exe_scope) lldb::LanguageType language = GetObjectRuntimeLanguage(); LanguageRuntime *runtime = process->GetLanguageRuntime(language); + if (runtime == NULL) + { + // Aw, hell, if the things a pointer, let's try ObjC anyway... + clang_type_t opaque_qual_type = GetClangType(); + if (opaque_qual_type != NULL) + { + clang::QualType qual_type (clang::QualType::getFromOpaquePtr(opaque_qual_type).getNonReferenceType()); + if (qual_type->isAnyPointerType()) + runtime = process->GetLanguageRuntime(lldb::eLanguageTypeObjC); + } + } + if (runtime && runtime->GetObjectDescription(s, *this, exe_scope)) { m_object_desc_str.append (s.GetData()); |

