llvm-project/lldb/source/Core
Zachary Turner e6e2bb3842 Rework LLDB system initialization.
In an effort to reduce binary size for components not wishing to
link against all of LLDB, as well as a parallel effort to reduce
link dependencies on Python, this patch splits out the notion of
LLDB initialization into "full" and "common" initialization.

All code related to initializing the full LLDB suite lives directly
in API now.  Previously it was only referenced from API, but because
it was defined in lldbCore, it would get implicitly linked against
by everything including lldb-server, causing a considerable
increase in binary size.

By moving this to the API layer, it also creates a better layering
for the ongoing effort to make the embedded interpreter replacable
with one from a different language (or even be completely removeable).

One semantic change necessary to get this all working was to remove
the notion of a shared debugger refcount.  The debugger is either
initialized or uninitialized now, and calling Initialize() multiple
times will simply have no effect, while the first Terminate() will
now shut it down no matter how many times Initialize() was called.
This behaves nicely with all of our supported usage patterns though,
and allows us to fix a number of nasty hacks from before.

Differential Revision: http://reviews.llvm.org/D8462

llvm-svn: 233758
2015-03-31 21:03:22 +00:00
..
Address.cpp Change the default disassembly format again. First attempt at 2015-02-13 23:24:21 +00:00
AddressRange.cpp Audit uses of ConstString::AsCString() to make sure they weren't assuming 2014-12-19 19:20:44 +00:00
AddressResolver.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
AddressResolverFileLine.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
AddressResolverName.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
ArchSpec.cpp Fix type detection for 'char' variables 2015-03-31 10:21:50 +00:00
Baton.cpp
Broadcaster.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
CMakeLists.txt Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
Communication.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
Connection.cpp Create a ConnectionGenericFile class for Windows. 2014-10-06 21:23:09 +00:00
ConnectionMachPort.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
ConnectionSharedMemory.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
ConstString.cpp Fixed bugs in the multi-threaded access in HostInfoBase. Prior to this fix, static bool variables were used but this is not sufficient. We now use std::call_once in all places where the previous static bool code was used to try to implement thread safety. 2015-02-03 02:05:44 +00:00
DataBufferHeap.cpp lldb needs to support DW_op_piece masks for values in subregister and also to be able to piece together a value that is spread across multiple registers. 2014-07-12 00:24:33 +00:00
DataBufferMemoryMap.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
DataEncoder.cpp Fixed the ValidOffsetForDataOfSize() to use simpler logic. Fixed DataExtractor::BytesLeft() to return the correct value. 2013-03-21 00:29:45 +00:00
DataExtractor.cpp Fix a bug where LLDB could be convinced to attempt to extract a bitfield of size 0, and consequently crash 2015-02-26 19:00:23 +00:00
Debugger.cpp Rework LLDB system initialization. 2015-03-31 21:03:22 +00:00
Disassembler.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
DynamicLoader.cpp Modified ObjectFile::SetLoadAddress() to now be: 2014-02-07 22:54:47 +00:00
EmulateInstruction.cpp Replace uint32_t by lldb::RegisterKing in register context API. 2014-07-02 09:51:28 +00:00
Error.cpp Error::Clear() should reset the type to invalid instead of generic. 2015-01-22 19:30:05 +00:00
Event.cpp sweep up -Wformat warnings from gcc 2014-04-04 04:06:10 +00:00
FastDemangle.cpp Improvements to FastDemangler to correct parsing of <local-name> encodings for string literal and parameter/entity cases. Patch courtesy of slydiman. 2014-12-06 01:42:41 +00:00
FileLineResolver.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
FileSpecList.cpp For some reason, sometimes the directory paths that clang emits have internal 2014-11-15 01:54:26 +00:00
FormatEntity.cpp Fix a bug in the data formatters where summary strings would not look into the non-synthetic value for child members if the ValueObject being formatted happened to have a synthetic value 2015-03-12 22:17:07 +00:00
History.cpp
IOHandler.cpp Get rid of Debugger::FormatPrompt() and replace it with the new FormatEntity class. 2015-02-04 22:00:53 +00:00
Language.cpp lldb: remove adhoc implementation of array_sizeof 2014-06-27 05:17:41 +00:00
Listener.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
Log.cpp Move some functions from source/lldb.cpp to Utility. 2015-03-18 21:31:45 +00:00
Logging.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
Makefile Remove lldb's custom copy of the C++ demangler, used only on Mac 2013-07-03 04:52:51 +00:00
Mangled.cpp Bug 23051 - Fix build failure on Freebsd with gcc 4.9. 2015-03-28 10:13:47 +00:00
Module.cpp Make sure that "add-dsym" can't crash us when using it. 2015-03-31 21:01:48 +00:00
ModuleChild.cpp
ModuleList.cpp Make ModuleList::GetSharedModule to use module_search_paths parameter. 2015-03-16 23:44:30 +00:00
Opcode.cpp sanitise sign comparisons 2014-04-02 03:51:35 +00:00
PluginManager.cpp LLDB AddressSanitizer instrumentation runtime plugin, breakpint on error and report data extraction 2014-10-10 23:43:03 +00:00
RegisterValue.cpp Moved Args::StringToXIntYZ to StringConvert::ToXIntYZ 2015-01-15 20:08:35 +00:00
RegularExpression.cpp Abstract the details from regex.h a bit more by not allowing people to specify compile and execute flags for regular expressions. Also enable better regular expressions if they are available by check if the REG_ENHANCED is available and using it if it is. 2015-01-21 21:51:02 +00:00
Scalar.cpp Moved Args::StringToXIntYZ to StringConvert::ToXIntYZ 2015-01-15 20:08:35 +00:00
SearchFilter.cpp Work around lack of %zd printf format specifier in MSVC libs. 2015-03-30 17:46:36 +00:00
Section.cpp Move some functions from source/lldb.cpp to Utility. 2015-03-18 21:31:45 +00:00
SourceManager.cpp Further reduce header footprint of Debugger.h. 2015-03-04 01:58:01 +00:00
State.cpp
Stream.cpp Fix typos. 2014-07-01 21:22:11 +00:00
StreamAsynchronousIO.cpp Merging the iohandler branch back into main. 2014-01-27 23:43:24 +00:00
StreamCallback.cpp <rdar://problem/13069948> 2013-01-25 18:06:21 +00:00
StreamFile.cpp Support for truncate/append on log files 2015-03-20 09:43:20 +00:00
StreamGDBRemote.cpp merge lldb-platform-work branch (and assorted fixes) into trunk 2013-08-26 23:57:52 +00:00
StreamString.cpp Add a new disassembly-format specification so that the disassembler 2014-10-10 23:07:36 +00:00
StringList.cpp Merging the iohandler branch back into main. 2014-01-27 23:43:24 +00:00
StructuredData.cpp Remove ScriptInterpreterObject. 2015-03-17 20:04:04 +00:00
Timer.cpp MingW compilation (windows). Includes various refactoring to improve portability. 2013-08-23 12:44:05 +00:00
UUID.cpp Add Utility/ModuleCache class and integrate it with PlatformGDBRemoteServer - in order to allow modules caching from remote targets. 2015-03-10 01:15:28 +00:00
UserID.cpp Implemented a types.py module that allows types to be inspected for padding. 2013-06-19 21:50:28 +00:00
UserSettingsController.cpp Further reduce header footprint of Debugger.h. 2015-03-04 01:58:01 +00:00
VMRange.cpp <rdar://problem/13069948> 2013-01-25 18:06:21 +00:00
Value.cpp Preparatory infrastructural work to support dynamically determining sizes of ObjC types via the runtime 2015-01-28 00:07:51 +00:00
ValueObject.cpp This fixes the build I previously broke - and actually makes the test case work just like I promised 2015-03-12 22:30:58 +00:00
ValueObjectCast.cpp Extend synthetic children to produce synthetic values (as in, those that GetValueAsUnsigned(), GetValueAsCString() would return) 2014-10-08 18:27:36 +00:00
ValueObjectChild.cpp Expose the type-info flags at the public API layer. These flags provide much more informational content to consumers of the LLDB API than the existing TypeClass. Part of the fix for rdar://18517593 2014-10-21 20:52:14 +00:00
ValueObjectConstResult.cpp Make a more complete fix for always supplying an execution context when getting byte sizes from types. 2015-02-12 00:34:25 +00:00
ValueObjectConstResultChild.cpp Huge change to clean up types. 2013-07-11 22:46:58 +00:00
ValueObjectConstResultImpl.cpp Some more cleanup of the ValueObjectConstResultImpl code. NFC. 2014-12-12 22:37:44 +00:00
ValueObjectDynamicValue.cpp Move several GetByteSize() calls over to the brave new world of taking an ExecutionContext* 2015-01-28 01:09:45 +00:00
ValueObjectList.cpp <rdar://problem/13069948> 2013-01-25 18:06:21 +00:00
ValueObjectMemory.cpp Preparatory infrastructural work to support dynamically determining sizes of ObjC types via the runtime 2015-01-28 00:07:51 +00:00
ValueObjectRegister.cpp Introduce the concept of a "display name" for types 2014-05-17 19:14:17 +00:00
ValueObjectSyntheticFilter.cpp Add an overload of SetValueFromCString() to ValueObjectSynthetic that is just a passthrough to the parent object 2015-01-26 19:33:52 +00:00
ValueObjectVariable.cpp Make a more complete fix for always supplying an execution context when getting byte sizes from types. 2015-02-12 00:34:25 +00:00