On Tue, 2014-10-07 at 17:10 -0700, Greg Clayton wrote:
> It is quite common for shared libraries to have initialize and terminate 
> calls. We have this in LLDB. 

Agreed. Lots of libraries have to initialise resource, then release the
resource upon terminate.

But why have an Initialise method when you _already_ have a Create
method? Likewise a Terminate method when you _already_ have a Destroy
method.

Surely when a "thing" is created that is also when it is initialised?

> 
> I would rather not have to look through all API calls that might require LLDB 
> to be initialized and have to possibly manually call SBDebugger::Initialize() 
> in there. The initialization does quite a bit and the assertion quickly 
> should tell you that you must call SBDebugger::Initialize() first. If it 
> isn't clear from the assertion, we can change the assertion to be more 
> descriptive. But again, many other classes in the lldb::SB* API have 
> functions that might be able to be used without having to start with a 
> debugger, so I would rather not have to go through all of the API and add the 
> "init the debugger if not already initialized".
> 
> This also allows you to use LLDB as a shared library and do:
> 
> SBDebugger::Initialize()
> // Do something that takes up a bunch of memory
> SBDebugger::Terminate()
> 

Agreed. But surely in between the invocations of Initialise and
Terminate, you have in some sense "created" an instance of an
SBDebugger?


> So I vote to leave things as is.
> 

To avoid rocking the boat, I reluctantly concede.

Matt




Member of the CSR plc group of companies. CSR plc registered in England and 
Wales, registered number 4187346, registered office Churchill House, Cambridge 
Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
More information can be found at www.csr.com. Keep up to date with CSR on our 
technical blog, www.csr.com/blog, CSR people blog, www.csr.com/people, YouTube, 
www.youtube.com/user/CSRplc, Facebook, 
www.facebook.com/pages/CSR/191038434253534, or follow us on Twitter at 
www.twitter.com/CSR_plc.
New for 2014, you can now access the wide range of products powered by aptX at 
www.aptx.com.
_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to