summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SBCommandInterpreter.cpp
diff options
context:
space:
mode:
authorEnrico Granata <granata.enrico@gmail.com>2011-07-24 00:14:56 +0000
committerEnrico Granata <granata.enrico@gmail.com>2011-07-24 00:14:56 +0000
commita37a065c3392ab52abd6a896ac1e95b4878cafad (patch)
tree87687e7cf49c92f298ba9f8c9a65fc0cecb81b0f /lldb/source/API/SBCommandInterpreter.cpp
parentfb66d5cc9c236d0f6b07177e42509244d9b9d5d5 (diff)
downloadbcm5719-llvm-a37a065c3392ab52abd6a896ac1e95b4878cafad.tar.gz
bcm5719-llvm-a37a065c3392ab52abd6a896ac1e95b4878cafad.zip
Python synthetic children:
- you can now define a Python class as a synthetic children producer for a type the class must adhere to this "interface": def __init__(self, valobj, dict): def get_child_at_index(self, index): def get_child_index(self, name): then using type synth add -l className typeName (e.g. type synth add -l fooSynthProvider foo) (This is still WIP with lots to be added) A small test case is available also as reference llvm-svn: 135865
Diffstat (limited to 'lldb/source/API/SBCommandInterpreter.cpp')
-rw-r--r--lldb/source/API/SBCommandInterpreter.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/lldb/source/API/SBCommandInterpreter.cpp b/lldb/source/API/SBCommandInterpreter.cpp
index 97b93141e7d..1124d56e169 100644
--- a/lldb/source/API/SBCommandInterpreter.cpp
+++ b/lldb/source/API/SBCommandInterpreter.cpp
@@ -322,6 +322,19 @@ LLDBSwigPythonCallTypeScript
const lldb::ValueObjectSP& valobj_sp
);
+extern "C" void*
+LLDBSwigPythonCreateSyntheticProvider
+(
+ const std::string python_class_name,
+ const char *session_dictionary_name,
+ const lldb::ValueObjectSP& valobj_sp
+);
+
+
+extern "C" uint32_t LLDBSwigPython_CalculateNumChildren (void *implementor);
+extern "C" void* LLDBSwigPython_GetChildAtIndex (void *implementor, uint32_t idx);
+extern "C" int LLDBSwigPython_GetIndexOfChildWithName (void *implementor, const char* child_name);
+extern "C" lldb::SBValue* LLDBSWIGPython_CastPyObjectToSBValue (void* data);
extern "C" void init_lldb(void);
@@ -334,6 +347,11 @@ SBCommandInterpreter::InitializeSWIG ()
g_initialized = true;
ScriptInterpreter::InitializeInterpreter (init_lldb,
LLDBSwigPythonBreakpointCallbackFunction,
- LLDBSwigPythonCallTypeScript);
+ LLDBSwigPythonCallTypeScript,
+ LLDBSwigPythonCreateSyntheticProvider,
+ LLDBSwigPython_CalculateNumChildren,
+ LLDBSwigPython_GetChildAtIndex,
+ LLDBSwigPython_GetIndexOfChildWithName,
+ LLDBSWIGPython_CastPyObjectToSBValue);
}
}
OpenPOWER on IntegriCloud