[Lldb-commits] [PATCH] Delete LLDB_DEFAULT_SHELL, and determine the default shell at runtime

Zachary Turner zturner at google.com
Wed Oct 15 13:43:22 PDT 2014


>>! In D5805#4, @clayborg wrote:
> You can't add members to any lldb::SB class, you will need to remove m_cached_shell and either put it into lldb_private::ProcessLaunchInfo. Why? Because we expect the lldb::SB API to be stable for people to link against and adding a new ivar changes the layout of the class. All lldb::SB classes must have a single member that is either a pointer, unique_ptr or shared_ptr and these can't change. Other rules for lldb::SB API classes include: no virtual functions and no inheritance.

Can I make it a function local static?  The issue is that the function returns a raw char*, so after my change it can't just return the result of m_opaque_sp->GetShell().  And I need to make sure its life extends beyond the scope of the function.

http://reviews.llvm.org/D5805






More information about the lldb-commits mailing list