summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2012-09-18 21:53:02 +0000
committerEnrico Granata <egranata@apple.com>2012-09-18 21:53:02 +0000
commitfac939e918558d88b80561e764989e95a5576b1c (patch)
tree60b9f7cb6d7b5a626d1717f6d6c7c37be6bd36ce /lldb/source/Interpreter/ScriptInterpreterPython.cpp
parent14f082b69d7309ddc2abb5bc6a6207ce9b1c2c11 (diff)
downloadbcm5719-llvm-fac939e918558d88b80561e764989e95a5576b1c.tar.gz
bcm5719-llvm-fac939e918558d88b80561e764989e95a5576b1c.zip
<rdar://problem/12188843> Fixing a problem where a Python command created in the same module where the target function is defined causes the help string not to come out
llvm-svn: 164172
Diffstat (limited to 'lldb/source/Interpreter/ScriptInterpreterPython.cpp')
-rw-r--r--lldb/source/Interpreter/ScriptInterpreterPython.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp
index fec70e301cc..d0858739b12 100644
--- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp
+++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp
@@ -2542,9 +2542,12 @@ ScriptInterpreterPython::RunScriptBasedCommand(const char* impl_function,
// in Python, a special attribute __doc__ contains the docstring
// for an object (function, method, class, ...) if any is defined
// Otherwise, the attribute's value is None
-std::string
-ScriptInterpreterPython::GetDocumentationForItem(const char* item)
+bool
+ScriptInterpreterPython::GetDocumentationForItem(const char* item, std::string& dest)
{
+ dest.clear();
+ if (!item || !*item)
+ return false;
std::string command(item);
command += ".__doc__";
@@ -2554,10 +2557,16 @@ ScriptInterpreterPython::GetDocumentationForItem(const char* item)
ScriptInterpreter::eScriptReturnTypeCharStrOrNone,
&result_ptr, false) && result_ptr)
{
- return std::string(result_ptr);
+ dest.assign(result_ptr);
+ return true;
}
else
- return std::string("");
+ {
+ StreamString str_stream;
+ str_stream.Printf("Function %s was not found. Containing module might be missing.",item);
+ dest.assign(str_stream.GetData());
+ return false;
+ }
}
void
OpenPOWER on IntegriCloud