Changeset View
Changeset View
Standalone View
Standalone View
source/Target/Thread.cpp
Show All 23 Lines | |||||
#include "lldb/Interpreter/OptionValueProperties.h" | #include "lldb/Interpreter/OptionValueProperties.h" | ||||
#include "lldb/Interpreter/Property.h" | #include "lldb/Interpreter/Property.h" | ||||
#include "lldb/Symbol/Function.h" | #include "lldb/Symbol/Function.h" | ||||
#include "lldb/Target/ABI.h" | #include "lldb/Target/ABI.h" | ||||
#include "lldb/Target/DynamicLoader.h" | #include "lldb/Target/DynamicLoader.h" | ||||
#include "lldb/Target/ExecutionContext.h" | #include "lldb/Target/ExecutionContext.h" | ||||
#include "lldb/Target/Process.h" | #include "lldb/Target/Process.h" | ||||
#include "lldb/Target/RegisterContext.h" | #include "lldb/Target/RegisterContext.h" | ||||
#include "lldb/Target/StackFrameRecognizer.h" | |||||
#include "lldb/Target/StopInfo.h" | #include "lldb/Target/StopInfo.h" | ||||
#include "lldb/Target/SystemRuntime.h" | #include "lldb/Target/SystemRuntime.h" | ||||
#include "lldb/Target/Target.h" | #include "lldb/Target/Target.h" | ||||
#include "lldb/Target/ThreadPlan.h" | #include "lldb/Target/ThreadPlan.h" | ||||
#include "lldb/Target/ThreadPlanBase.h" | #include "lldb/Target/ThreadPlanBase.h" | ||||
#include "lldb/Target/ThreadPlanCallFunction.h" | #include "lldb/Target/ThreadPlanCallFunction.h" | ||||
#include "lldb/Target/ThreadPlanPython.h" | #include "lldb/Target/ThreadPlanPython.h" | ||||
#include "lldb/Target/ThreadPlanRunToAddress.h" | #include "lldb/Target/ThreadPlanRunToAddress.h" | ||||
▲ Show 20 Lines • Show All 2,145 Lines • ▼ Show 20 Lines | if (StateIsStoppedState(process->GetState(), true)) { | ||||
// Why do we need to set the current thread by ID here??? | // Why do we need to set the current thread by ID here??? | ||||
process->GetThreadList().SetSelectedThreadByID(GetID()); | process->GetThreadList().SetSelectedThreadByID(GetID()); | ||||
error = process->Resume(); | error = process->Resume(); | ||||
} else { | } else { | ||||
error.SetErrorString("process not stopped"); | error.SetErrorString("process not stopped"); | ||||
} | } | ||||
return error; | return error; | ||||
} | } | ||||
ValueObjectSP Thread::GetCurrentException() { | |||||
StackFrameSP frame_sp(GetStackFrameAtIndex(0)); | |||||
if (!frame_sp) return ValueObjectSP(); | |||||
RecognizedStackFrameSP recognized_frame(frame_sp->GetRecognizedFrame()); | |||||
if (!recognized_frame) return ValueObjectSP(); | |||||
return recognized_frame->GetExceptionObject(); | |||||
} | |||||
ThreadSP Thread::GetCurrentExceptionBacktrace() { | |||||
// TODO | |||||
return ThreadSP(); | |||||
} |