Skip to content
  1. Oct 16, 2010
    • Greg Clayton's avatar
      Made many ConstString functions inlined in the header file. · 7b462cc1
      Greg Clayton authored
      Changed all of our synthesized "___clang" functions, types and variables
      that get used in expressions over to have a prefix of "$_lldb". Now when we
      do name lookups we can easily switch off of the first '$' character to know
      if we should look through only our internal (when first char is '$') stuff,
      or when we should look through program variables, functions and types.
      
      Converted all of the clang expression code over to using "const ConstString&" 
      values for names instead of "const char *" since there were many places that
      were converting the "const char *" names into ConstString names and them
      throwing them away. We now avoid making a lot of ConstString conversions and
      benefit from the quick comparisons in a few extra spots.
      
      Converted a lot of code from LLVM coding conventions into LLDB coding 
      conventions.
      
      llvm-svn: 116634
      7b462cc1
  2. Oct 05, 2010
    • Greg Clayton's avatar
      Added a new ValueObject type that will be used to freeze dry expression · 1d3afba3
      Greg Clayton authored
      results. The clang opaque type for the expression result will be added to the
      Target's ASTContext, and the bytes will be stored in a DataBuffer inside
      the new object. The class is named: ValueObjectConstResult
      
      Now after an expression is evaluated, we can get a ValueObjectSP back that
      contains a ValueObjectConstResult object.
      
      Relocated the value object dumping code into a static function within
      the ValueObject class instead of being in the CommandObjectFrame.cpp file
      which is what contained the code to dump variables ("frame variables").
      
      llvm-svn: 115578
      1d3afba3
  3. Aug 20, 2010
    • Sean Callanan's avatar
      First step of refactoring variable handling in the · d0ef0eff
      Sean Callanan authored
      expression parser.  There shouldn't be four separate
      classes encapsulating a variable.
      
      ClangExpressionVariable is now meant to be the
      container for all variable information.  It has
      several optional components that hold data for
      different subsystems.
      
      ClangPersistentVariable has been removed; we now
      use ClangExpressionVariable instead.
      
      llvm-svn: 111600
      d0ef0eff
  4. Aug 12, 2010
    • Sean Callanan's avatar
      Added automatically generated result variables for each · d1e5b439
      Sean Callanan authored
      expression.  It is now possible to do things like this:
      
      (lldb) expr int $i = 5; $i + 1
      $0 = (int) 6
      (lldb) expr $i + 3
      $1 = (int) 8
      (lldb) expr $1 + $0
      $2 = (int) 14
      
      As a bonus, this allowed us to move printing of
      expression results into the ClangPersistentVariable
      class.  This code needs a bit of refactoring -- in
      particular, ClangExpressionDeclMap has eaten one too
      many bacteria and needs to undergo mitosis -- but the
      infrastructure appears to be holding up nicely.
      
      llvm-svn: 110896
      d1e5b439
  5. Aug 11, 2010
    • Sean Callanan's avatar
      Added support for persistent variables to the · 2235f32b
      Sean Callanan authored
      expression parser.  It is now possible to type:
      
      (lldb) expr int $i = 5; $i + 1
      (int) 6
      (lldb) expr $i + 2
      (int) 7
      
      The skeleton for automatic result variables is
      also implemented.  The changes affect:
      
      - the process, which now contains a 
        ClangPersistentVariables object that holds
        persistent variables associated with it
      - the expression parser, which now uses
        the persistent variables during variable
        lookup
      - TaggedASTType, where I loaded some commonly
        used tags into a header so that they are
        interchangeable between different clients of
        the class
      
      llvm-svn: 110777
      2235f32b
Loading