[lldb] Introduce ScriptedFrame affordance (#149622)
This patch introduces a new scripting affordance in lldb: `ScriptedFrame`. This allows user to produce mock stackframes in scripted threads and scripted processes from a python script. With this change, StackFrame can be synthetized from different sources: - Either from a dictionary containing a load address, and a frame index, which is the legacy way. - Or by creating a ScriptedFrame python object. One particularity of synthezising stackframes from the ScriptedFrame python object, is that these frame have an optional PC, meaning that they don't have a report a valid PC and they can act as shells that just contain static information, like the frame function name, the list of variables or registers, etc. It can also provide a symbol context. rdar://157260006 Signed-off-by: Med Ismail Bennani <ismail@bennani.ma> Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
This commit is contained in:
1 parent
78fbca4a33
commit
84b56202fb
23 files changed
+871
-32
No files matched your search
@@ -1521,6 +1521,11 @@ ScriptInterpreterPythonImpl::CreateScriptedThreadInterface() {
|
||||
return std::make_shared<ScriptedThreadPythonInterface>(*this);
|
||||
}
|
||||
|
||||
ScriptedFrameInterfaceSP
|
||||
ScriptInterpreterPythonImpl::CreateScriptedFrameInterface() {
|
||||
return std::make_shared<ScriptedFramePythonInterface>(*this);
|
||||
}
|
||||
|
||||
ScriptedThreadPlanInterfaceSP
|
||||
ScriptInterpreterPythonImpl::CreateScriptedThreadPlanInterface() {
|
||||
return std::make_shared<ScriptedThreadPlanPythonInterface>(*this);
|
||||
|
||||
Reference in new issue
Block a user