aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp')
-rw-r--r--contrib/llvm-project/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/contrib/llvm-project/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp b/contrib/llvm-project/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
index ad0d26af8879..684375957d24 100644
--- a/contrib/llvm-project/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
+++ b/contrib/llvm-project/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
@@ -35,7 +35,7 @@ ScriptedThread::Create(ScriptedProcess &process,
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"Invalid scripted process.");
- process.CheckInterpreterAndScriptObject();
+ process.CheckScriptedInterface();
auto scripted_thread_interface =
process.GetInterface().CreateScriptedThreadInterface();
@@ -250,14 +250,19 @@ bool ScriptedThread::CalculateStopInfo() {
StopInfo::CreateStopReasonWithBreakpointSiteID(*this, break_id);
} break;
case lldb::eStopReasonSignal: {
- int signal;
+ uint32_t signal;
llvm::StringRef description;
- data_dict->GetValueForKeyAsInteger("signal", signal,
- LLDB_INVALID_SIGNAL_NUMBER);
+ if (!data_dict->GetValueForKeyAsInteger("signal", signal)) {
+ signal = LLDB_INVALID_SIGNAL_NUMBER;
+ return false;
+ }
data_dict->GetValueForKeyAsString("desc", description);
stop_info_sp =
StopInfo::CreateStopReasonWithSignal(*this, signal, description.data());
} break;
+ case lldb::eStopReasonTrace: {
+ stop_info_sp = StopInfo::CreateStopReasonToTrace(*this);
+ } break;
case lldb::eStopReasonException: {
#if defined(__APPLE__)
StructuredData::Dictionary *mach_exception;
@@ -280,7 +285,7 @@ bool ScriptedThread::CalculateStopInfo() {
auto fetch_data = [&raw_codes](StructuredData::Object *obj) {
if (!obj)
return false;
- raw_codes.push_back(obj->GetIntegerValue());
+ raw_codes.push_back(obj->GetUnsignedIntegerValue());
return true;
};
@@ -338,7 +343,7 @@ std::shared_ptr<DynamicRegisterInfo> ScriptedThread::GetDynamicRegisterInfo() {
LLVM_PRETTY_FUNCTION, "Failed to get scripted thread registers info.",
error, LLDBLog::Thread);
- m_register_info_sp = std::make_shared<DynamicRegisterInfo>(
+ m_register_info_sp = DynamicRegisterInfo::Create(
*reg_info, m_scripted_process.GetTarget().GetArchitecture());
}