llvm-project/lldb/source/Target
Sean Callanan 92adcac9ec Implemented a major overhaul of the way variables are handled
by LLDB.  Instead of being materialized into the input structure
passed to the expression, variables are left in place and pointers
to them are materialzied into the structure.  Variables not resident
in memory (notably, registers) get temporary memory regions allocated
for them.

Persistent variables are the most complex part of this, because they
are made in various ways and there are different expectations about
their lifetime.  Persistent variables now have flags indicating their
status and what the expectations for longevity are.  They can be
marked as residing in target memory permanently -- this is the
default for result variables from expressions entered on the command
line and for explicitly declared persistent variables (but more on
that below).  Other result variables have their memory freed.

Some major improvements resulting from this include being able to
properly take the address of variables, better and cleaner support
for functions that return references, and cleaner C++ support in
general.  One problem that remains is the problem of explicitly
declared persistent variables; I have not yet implemented the code
that makes references to them into indirect references, so currently
materialization and dematerialization of these variables is broken.

llvm-svn: 123371
2011-01-13 08:53:35 +00:00
..
ABI.cpp
CPPLanguageRuntime.cpp Add "-o" option to "expression" which prints the object description if available. 2010-09-30 00:54:27 +00:00
ExecutionContext.cpp Fixed issues with RegisterContext classes and the subclasses. There was 2011-01-06 22:15:06 +00:00
LanguageRuntime.cpp Replace the vestigial Value::GetOpaqueCLangQualType with the more correct Value::GetValueOpaqueClangQualType. 2010-09-28 01:25:32 +00:00
Makefile Merged Eli Friedman's linux build changes where he added Makefile files that 2010-07-09 20:39:50 +00:00
ObjCLanguageRuntime.cpp Modified all logging calls to hand out shared pointers to make sure we 2010-11-06 01:53:30 +00:00
PathMappingList.cpp Minor warning/error fixes. 2010-06-09 09:32:42 +00:00
Process.cpp Implemented a major overhaul of the way variables are handled 2011-01-13 08:53:35 +00:00
RegisterContext.cpp Put more smarts into the RegisterContext base class. Now the base class has 2011-01-09 21:07:35 +00:00
SectionLoadList.cpp RegisterContextLLDB.cpp (InitializeNonZerothFrame): If we get a 2010-12-22 02:02:45 +00:00
StackFrame.cpp Fixed issues with RegisterContext classes and the subclasses. There was 2011-01-06 22:15:06 +00:00
StackFrameList.cpp Fixed issues with RegisterContext classes and the subclasses. There was 2011-01-06 22:15:06 +00:00
StackID.cpp Added a new bool parameter to many of the DumpStopContext() methods that 2010-09-02 21:44:10 +00:00
StopInfo.cpp Added the ability to get more information on the SBThread's stop reason 2010-11-18 18:52:36 +00:00
Target.cpp Implemented a major overhaul of the way variables are handled 2011-01-13 08:53:35 +00:00
TargetList.cpp Fixed up the error message for when a file is not supported. 2010-12-08 04:55:11 +00:00
Thread.cpp Added the following functions to SBThread to allow threads to be suspended when a process is resumed: 2011-01-12 02:25:42 +00:00
ThreadList.cpp Modified all logging calls to hand out shared pointers to make sure we 2010-11-06 01:53:30 +00:00
ThreadPlan.cpp Fixed issues with RegisterContext classes and the subclasses. There was 2011-01-06 22:15:06 +00:00
ThreadPlanBase.cpp The thread plan destructors may call Thread virtual methods. That means they have to get cleaned up in the derived class's destructor. Make sure that happens. 2010-11-18 02:47:07 +00:00
ThreadPlanCallFunction.cpp Fixed issues with RegisterContext classes and the subclasses. There was 2011-01-06 22:15:06 +00:00
ThreadPlanCallUserExpression.cpp Added support for generating expressions that have 2010-12-13 22:46:15 +00:00
ThreadPlanRunToAddress.cpp Moved the code in ClangUserExpression that set up & ran the thread plan with timeouts, and restarting with all threads into a utility function in Process. This required a bunch of renaming. 2010-11-30 02:22:11 +00:00
ThreadPlanShouldStopHere.cpp
ThreadPlanStepInRange.cpp Modified all logging calls to hand out shared pointers to make sure we 2010-11-06 01:53:30 +00:00
ThreadPlanStepInstruction.cpp Add ThreadPlanTracer class to allow instruction step tracing of execution. 2010-11-11 19:26:09 +00:00
ThreadPlanStepOut.cpp Add ThreadPlanTracer class to allow instruction step tracing of execution. 2010-11-11 19:26:09 +00:00
ThreadPlanStepOverBreakpoint.cpp Add ThreadPlanTracer class to allow instruction step tracing of execution. 2010-11-11 19:26:09 +00:00
ThreadPlanStepOverRange.cpp Modified all logging calls to hand out shared pointers to make sure we 2010-11-06 01:53:30 +00:00
ThreadPlanStepRange.cpp Add ThreadPlanTracer class to allow instruction step tracing of execution. 2010-11-11 19:26:09 +00:00
ThreadPlanStepThrough.cpp Add ThreadPlanTracer class to allow instruction step tracing of execution. 2010-11-11 19:26:09 +00:00
ThreadPlanStepUntil.cpp Add ThreadPlanTracer class to allow instruction step tracing of execution. 2010-11-11 19:26:09 +00:00
ThreadPlanTestCondition.cpp Modified LLDB expressions to not have to JIT and run code just to see variable 2010-12-14 02:59:59 +00:00
ThreadPlanTracer.cpp Fixed issues with RegisterContext classes and the subclasses. There was 2011-01-06 22:15:06 +00:00
ThreadSpec.cpp Fixed an error where the thread index was being returned as zero in "uint32_t SBBreakpoint::GetThreadIndex() const" even when it isn't specified. It should be UINT32_MAX to indicate there is no thread index set for the breakpoint (the breakpoint isn't thread specific). Also fixed the ThreadSpec.cpp to use UINT32_MAX instead of -1. Fixed the logging Printf statement in "uint32_t SBBreakpoint::GetThreadIndex() const" to not print the address of the "index" function from <string.h>! 2010-12-15 20:50:06 +00:00
UnixSignals.cpp Change the default signal setting for SIBABRT to SUPPRESS the signal. Why? 2011-01-10 03:47:25 +00:00