diff options
Diffstat (limited to 'source/DataFormatters/FormattersHelpers.cpp')
-rw-r--r-- | source/DataFormatters/FormattersHelpers.cpp | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/source/DataFormatters/FormattersHelpers.cpp b/source/DataFormatters/FormattersHelpers.cpp index 4b0e82e975e4..c4ff75cffdd1 100644 --- a/source/DataFormatters/FormattersHelpers.cpp +++ b/source/DataFormatters/FormattersHelpers.cpp @@ -133,178 +133,6 @@ lldb_private::formatters::AddFilter (TypeCategoryImpl::SharedPointer category_s } #endif -StackFrame* -lldb_private::formatters::GetViableFrame (ExecutionContext exe_ctx) -{ - StackFrame* frame = exe_ctx.GetFramePtr(); - if (frame) - return frame; - - Process* process = exe_ctx.GetProcessPtr(); - if (!process) - return nullptr; - - ThreadSP thread_sp(process->GetThreadList().GetSelectedThread()); - if (thread_sp) - return thread_sp->GetSelectedFrame().get(); - return nullptr; -} - -bool -lldb_private::formatters::ExtractValueFromObjCExpression (ValueObject &valobj, - const char* target_type, - const char* selector, - uint64_t &value) -{ - if (!target_type || !*target_type) - return false; - if (!selector || !*selector) - return false; - StreamString expr; - expr.Printf("(%s)[(id)0x%" PRIx64 " %s]",target_type,valobj.GetPointerValue(),selector); - ExecutionContext exe_ctx (valobj.GetExecutionContextRef()); - lldb::ValueObjectSP result_sp; - Target* target = exe_ctx.GetTargetPtr(); - StackFrame* stack_frame = GetViableFrame(exe_ctx); - if (!target || !stack_frame) - return false; - - EvaluateExpressionOptions options; - options.SetCoerceToId(false); - options.SetUnwindOnError(true); - options.SetKeepInMemory(true); - options.SetLanguage(lldb::eLanguageTypeObjC_plus_plus); - options.SetResultIsInternal(true); - options.SetUseDynamic(lldb::eDynamicCanRunTarget); - - target->EvaluateExpression(expr.GetData(), - stack_frame, - result_sp, - options); - if (!result_sp) - return false; - value = result_sp->GetValueAsUnsigned(0); - return true; -} - -bool -lldb_private::formatters::ExtractSummaryFromObjCExpression (ValueObject &valobj, - const char* target_type, - const char* selector, - Stream &stream, - lldb::LanguageType lang_type) -{ - if (!target_type || !*target_type) - return false; - if (!selector || !*selector) - return false; - StreamString expr; - expr.Printf("(%s)[(id)0x%" PRIx64 " %s]",target_type,valobj.GetPointerValue(),selector); - ExecutionContext exe_ctx (valobj.GetExecutionContextRef()); - lldb::ValueObjectSP result_sp; - Target* target = exe_ctx.GetTargetPtr(); - StackFrame* stack_frame = GetViableFrame(exe_ctx); - if (!target || !stack_frame) - return false; - - EvaluateExpressionOptions options; - options.SetCoerceToId(false); - options.SetUnwindOnError(true); - options.SetKeepInMemory(true); - options.SetLanguage(lldb::eLanguageTypeObjC_plus_plus); - options.SetResultIsInternal(true); - options.SetUseDynamic(lldb::eDynamicCanRunTarget); - - target->EvaluateExpression(expr.GetData(), - stack_frame, - result_sp, - options); - if (!result_sp) - return false; - stream.Printf("%s",result_sp->GetSummaryAsCString(lang_type)); - return true; -} - -lldb::ValueObjectSP -lldb_private::formatters::CallSelectorOnObject (ValueObject &valobj, - const char* return_type, - const char* selector, - uint64_t index) -{ - lldb::ValueObjectSP valobj_sp; - if (!return_type || !*return_type) - return valobj_sp; - if (!selector || !*selector) - return valobj_sp; - StreamString expr; - const char *colon = ""; - llvm::StringRef selector_sr(selector); - if (selector_sr.back() != ':') - colon = ":"; - expr.Printf("(%s)[(id)0x%" PRIx64 " %s%s%" PRId64 "]",return_type,valobj.GetPointerValue(),selector,colon,index); - ExecutionContext exe_ctx (valobj.GetExecutionContextRef()); - lldb::ValueObjectSP result_sp; - Target* target = exe_ctx.GetTargetPtr(); - StackFrame* stack_frame = GetViableFrame(exe_ctx); - if (!target || !stack_frame) - return valobj_sp; - - EvaluateExpressionOptions options; - options.SetCoerceToId(false); - options.SetUnwindOnError(true); - options.SetKeepInMemory(true); - options.SetLanguage(lldb::eLanguageTypeObjC_plus_plus); - options.SetResultIsInternal(true); - options.SetUseDynamic(lldb::eDynamicCanRunTarget); - - target->EvaluateExpression(expr.GetData(), - stack_frame, - valobj_sp, - options); - return valobj_sp; -} - -lldb::ValueObjectSP -lldb_private::formatters::CallSelectorOnObject (ValueObject &valobj, - const char* return_type, - const char* selector, - const char* key) -{ - lldb::ValueObjectSP valobj_sp; - if (!return_type || !*return_type) - return valobj_sp; - if (!selector || !*selector) - return valobj_sp; - if (!key || !*key) - return valobj_sp; - StreamString expr; - const char *colon = ""; - llvm::StringRef selector_sr(selector); - if (selector_sr.back() != ':') - colon = ":"; - expr.Printf("(%s)[(id)0x%" PRIx64 " %s%s%s]",return_type,valobj.GetPointerValue(),selector,colon,key); - ExecutionContext exe_ctx (valobj.GetExecutionContextRef()); - lldb::ValueObjectSP result_sp; - Target* target = exe_ctx.GetTargetPtr(); - StackFrame* stack_frame = GetViableFrame(exe_ctx); - if (!target || !stack_frame) - return valobj_sp; - - EvaluateExpressionOptions options; - options.SetCoerceToId(false); - options.SetUnwindOnError(true); - options.SetKeepInMemory(true); - options.SetLanguage(lldb::eLanguageTypeObjC_plus_plus); - options.SetResultIsInternal(true); - options.SetUseDynamic(lldb::eDynamicCanRunTarget); - - target->EvaluateExpression(expr.GetData(), - stack_frame, - valobj_sp, - options); - return valobj_sp; -} - size_t lldb_private::formatters::ExtractIndexFromString (const char* item_name) { |