[Lldb-commits] [PATCH] D145294: [lldb/API] Introduce SBProcess::ForceScriptedState method
Med Ismail Bennani via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Apr 25 15:04:26 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rG0d77e034749f: [lldb/API] Introduce SBProcess::ForceScriptedState method (authored by mib).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D145294/new/
https://reviews.llvm.org/D145294
Files:
lldb/include/lldb/API/SBProcess.h
lldb/include/lldb/Target/Process.h
lldb/source/API/SBProcess.cpp
lldb/source/Plugins/Process/scripted/ScriptedProcess.h
Index: lldb/source/Plugins/Process/scripted/ScriptedProcess.h
===================================================================
--- lldb/source/Plugins/Process/scripted/ScriptedProcess.h
+++ lldb/source/Plugins/Process/scripted/ScriptedProcess.h
@@ -90,6 +90,10 @@
void *GetImplementation() override;
+ void ForceScriptedState(lldb::StateType state) override {
+ SetPrivateState(state);
+ }
+
protected:
ScriptedProcess(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp,
const ScriptedMetadata &scripted_metadata, Status &error);
Index: lldb/source/API/SBProcess.cpp
===================================================================
--- lldb/source/API/SBProcess.cpp
+++ lldb/source/API/SBProcess.cpp
@@ -466,6 +466,16 @@
return sb_event;
}
+void SBProcess::ForceScriptedState(StateType new_state) {
+ LLDB_INSTRUMENT_VA(this, new_state);
+
+ if (ProcessSP process_sp = GetSP()) {
+ std::lock_guard<std::recursive_mutex> guard(
+ process_sp->GetTarget().GetAPIMutex());
+ process_sp->ForceScriptedState(new_state);
+ }
+}
+
StateType SBProcess::GetState() {
LLDB_INSTRUMENT_VA(this);
Index: lldb/include/lldb/Target/Process.h
===================================================================
--- lldb/include/lldb/Target/Process.h
+++ lldb/include/lldb/Target/Process.h
@@ -2565,6 +2565,8 @@
virtual void *GetImplementation() { return nullptr; }
+ virtual void ForceScriptedState(lldb::StateType state) {}
+
protected:
friend class Trace;
Index: lldb/include/lldb/API/SBProcess.h
===================================================================
--- lldb/include/lldb/API/SBProcess.h
+++ lldb/include/lldb/API/SBProcess.h
@@ -186,6 +186,14 @@
/// The stop event corresponding to stop ID.
lldb::SBEvent GetStopEventForStopID(uint32_t stop_id);
+ /// If the process is a scripted process, changes its state to the new state.
+ /// No-op otherwise.
+ ///
+ /// \param [in] new_state
+ /// The new state that the scripted process should be set to.
+ ///
+ void ForceScriptedState(StateType new_state);
+
size_t ReadMemory(addr_t addr, void *buf, size_t size, lldb::SBError &error);
size_t WriteMemory(addr_t addr, const void *buf, size_t size,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D145294.516940.patch
Type: text/x-patch
Size: 2257 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20230425/5aa256a8/attachment-0001.bin>
More information about the lldb-commits
mailing list