From 8f407b8e632956816e49d1ac0ffd6ff5245252a6 Mon Sep 17 00:00:00 2001 From: Med Ismail Bennani Date: Sun, 21 May 2023 00:55:50 -0700 Subject: [PATCH] [lldb] Add "Trace" stop reason in Scripted Thread This patch adds support to eStopReasonTrace to Scripted Threads. This is necessary when using a Scrited Process with a Scripted Thread Plan to report a special thread stop reason to the thread plan. rdar://109425542 Differential Revision: https://reviews.llvm.org/D151043 Signed-off-by: Med Ismail Bennani --- lldb/source/Plugins/Process/scripted/ScriptedThread.cpp | 3 +++ lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py | 2 +- .../API/functionalities/scripted_process/dummy_scripted_process.py | 4 +--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp b/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp index 2c1516f..ac707ff 100644 --- a/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp +++ b/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp @@ -258,6 +258,9 @@ bool ScriptedThread::CalculateStopInfo() { 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; diff --git a/lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py b/lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py index b5a14a9..8cbd76a 100644 --- a/lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py +++ b/lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py @@ -186,7 +186,7 @@ class ScriptedProcesTestCase(TestBase): self.assertTrue(thread, "Invalid thread.") self.assertEqual(thread.GetThreadID(), 0x19) self.assertEqual(thread.GetName(), "DummyScriptedThread.thread-1") - self.assertStopReason(thread.GetStopReason(), lldb.eStopReasonSignal) + self.assertStopReason(thread.GetStopReason(), lldb.eStopReasonTrace) self.assertGreater(thread.GetNumFrames(), 0) diff --git a/lldb/test/API/functionalities/scripted_process/dummy_scripted_process.py b/lldb/test/API/functionalities/scripted_process/dummy_scripted_process.py index 3f6ce6c..f2b385f 100644 --- a/lldb/test/API/functionalities/scripted_process/dummy_scripted_process.py +++ b/lldb/test/API/functionalities/scripted_process/dummy_scripted_process.py @@ -67,9 +67,7 @@ class DummyScriptedThread(ScriptedThread): return lldb.eStateStopped def get_stop_reason(self) -> Dict[str, Any]: - return { "type": lldb.eStopReasonSignal, "data": { - "signal": signal.SIGINT - } } + return { "type": lldb.eStopReasonTrace, "data": {} } def get_register_context(self) -> str: return struct.pack( -- 2.7.4