llvm-project/lldb/source/Expression
Greg Clayton 5ccbd294b2 Fixed issues with RegisterContext classes and the subclasses. There was
an issue with the way the UnwindLLDB was handing out RegisterContexts: it
was making shared pointers to register contexts and then handing out just
the pointers (which would get put into shared pointers in the thread and
stack frame classes) and cause double free issues. MallocScribble helped to
find these issues after I did some other cleanup. To help avoid any
RegisterContext issue in the future, all code that deals with them now
returns shared pointers to the register contexts so we don't end up with
multiple deletions. Also now that the RegisterContext class doesn't require
a stack frame, we patched a memory leak where a StackFrame object was being
created and leaked.

Made the RegisterContext class not have a pointer to a StackFrame object as
one register context class can be used for N inlined stack frames so there is
not a 1 - 1 mapping. Updates the ExecutionContextScope part of the 
RegisterContext class to never return a stack frame to indicate this when it
is asked to recreate the execution context. Now register contexts point to the
concrete frame using a concrete frame index. Concrete frames are all of the
frames that are actually formed on the stack of a thread. These concrete frames
can be turned into one or more user visible frames due to inlining. Each 
inlined stack frame has the exact same register context (shared via shared
pointers) as any parent inlined stack frames all the way up to the concrete 
frame itself.

So now the stack frames and the register contexts should behave much better.

llvm-svn: 122976
2011-01-06 22:15:06 +00:00
..
ASTResultSynthesizer.cpp Added support for generating expressions that have 2010-12-13 22:46:15 +00:00
ASTStructExtractor.cpp Updated to latest LLVM. Major LLVM changes: 2010-09-23 03:01:22 +00:00
ClangASTSource.cpp Added support for generating expressions that have 2010-12-13 22:46:15 +00:00
ClangExpressionDeclMap.cpp Fixed a problem where constant results of expressions 2011-01-04 02:41:41 +00:00
ClangExpressionParser.cpp Implemented a feature where the expression parser 2010-12-16 03:17:46 +00:00
ClangExpressionVariable.cpp Modified LLDB expressions to not have to JIT and run code just to see variable 2010-12-14 02:59:59 +00:00
ClangFunction.cpp Modified LLDB expressions to not have to JIT and run code just to see variable 2010-12-14 02:59:59 +00:00
ClangPersistentVariables.cpp Patch from Stephen Wilson: 2010-12-20 21:45:22 +00:00
ClangUserExpression.cpp Added access to set the current stack frame within a thread so any command 2010-12-17 02:26:24 +00:00
ClangUtilityFunction.cpp Fixed object lifetimes in ClangExpressionDeclMap 2010-12-03 01:38:59 +00:00
DWARFExpression.cpp Fixed issues with RegisterContext classes and the subclasses. There was 2011-01-06 22:15:06 +00:00
IRDynamicChecks.cpp Modified all logging calls to hand out shared pointers to make sure we 2010-11-06 01:53:30 +00:00
IRForTarget.cpp Implemented a feature where the expression parser 2010-12-16 03:17:46 +00:00
IRToDWARF.cpp Modified LLDB expressions to not have to JIT and run code just to see variable 2010-12-14 02:59:59 +00:00
Makefile Merged Eli Friedman's linux build changes where he added Makefile files that 2010-07-09 20:39:50 +00:00
RecordingMemoryManager.cpp Modified all logging calls to hand out shared pointers to make sure we 2010-11-06 01:53:30 +00:00