diff options
author | Enrico Granata <egranata@apple.com> | 2012-09-18 21:53:02 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2012-09-18 21:53:02 +0000 |
commit | fac939e918558d88b80561e764989e95a5576b1c (patch) | |
tree | 60b9f7cb6d7b5a626d1717f6d6c7c37be6bd36ce /lldb/source/Interpreter/ScriptInterpreterPython.cpp | |
parent | 14f082b69d7309ddc2abb5bc6a6207ce9b1c2c11 (diff) | |
download | bcm5719-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.cpp | 17 |
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 |