[Lldb-commits] [PATCH] D22863: Improve code of loading plugins that provide cmnds
Abhishek via lldb-commits
lldb-commits at lists.llvm.org
Thu Jul 28 03:27:36 PDT 2016
abhishek.aggarwal added inline comments.
Comment at: include/lldb/API/SBCommandInterpreter.h:141-142
@@ -140,4 +140,4 @@
- AddCommand (const char* name, lldb::SBCommandPluginInterface *impl, const char* help);
+ AddCommand (const char* name, lldb::SBCommandPluginInterface *impl, const char* help, const char* syntax);
> abhishek.aggarwal wrote:
> > clayborg wrote:
> > > You can't change public API, you can only add to it. Just add another function with syntax and leave the other one alone.
> > After reading your review, I suggest to keep the following prototype of this function:
> > AddCommand (const char* name, lldb::SBCommandPluginInterface *impl, const char* help, const char* syntax = nullptr);
> > This will not break anyone's plugins written with old version of lldb shared library as syntax will be an optional argument.
> > This way, we will not need to add another API in this class thereby keeping the public APIs as minimal as possible and complete at the same time.
> > Please let me know if this fits our public API development conditions. Else I will add another variant of AddCommand API with syntax argument.
> We are trying to maintain binary compatibility. So, while your proposal maintains source-code level compatibilty, it will still break precompiled binaries, as the mangled function name changes.
Thanks for the clarification. Any comments in SBCommandInterpreter.cpp file for changing m_backend data member of CommandPluginInterfaceImplementation class to a shared pointer?
More information about the lldb-commits