@@ -1012,33 +1012,26 @@ bool SBFrame::GetDescription(SBStream &description) {
10121012SBValue SBFrame::EvaluateExpression (const char *expr) {
10131013 LLDB_INSTRUMENT_VA (this , expr);
10141014
1015- SBValue result;
10161015 std::unique_lock<std::recursive_mutex> lock;
10171016 ExecutionContext exe_ctx (m_opaque_sp.get (), lock);
10181017
10191018 StackFrame *frame = exe_ctx.GetFramePtr ();
10201019 Target *target = exe_ctx.GetTargetPtr ();
1020+ SBExpressionOptions options;
10211021 if (frame && target) {
1022- SBExpressionOptions options;
10231022 lldb::DynamicValueType fetch_dynamic_value =
10241023 frame->CalculateTarget ()->GetPreferDynamicValue ();
10251024 options.SetFetchDynamicValue (fetch_dynamic_value);
1026- options.SetUnwindOnError (true );
1027- options.SetIgnoreBreakpoints (true );
1028- SourceLanguage language = target->GetLanguage ();
1029- if (!language)
1030- language = frame->GetLanguage ();
1031- options.SetLanguage ((SBSourceLanguageName)language.name , language.version );
1032- return EvaluateExpression (expr, options);
1033- } else {
1034- Status error;
1035- error = Status::FromErrorString (" can't evaluate expressions when the "
1036- " process is running." );
1037- ValueObjectSP error_val_sp =
1038- ValueObjectConstResult::Create (nullptr , std::move (error));
1039- result.SetSP (error_val_sp, false );
10401025 }
1041- return result;
1026+ options.SetUnwindOnError (true );
1027+ options.SetIgnoreBreakpoints (true );
1028+ SourceLanguage language;
1029+ if (target)
1030+ language = target->GetLanguage ();
1031+ if (!language && frame)
1032+ language = frame->GetLanguage ();
1033+ options.SetLanguage ((SBSourceLanguageName)language.name , language.version );
1034+ return EvaluateExpression (expr, options);
10421035}
10431036
10441037SBValue
0 commit comments