Skip to content
  1. Oct 31, 2011
  2. Oct 29, 2011
    • Sean Callanan's avatar
      Cloned FindExternalVisibleDecls from · fb3e4306
      Sean Callanan authored
      ClangExpressionDeclMap to ClangASTSource, and
      moved all general type and namespace lookups
      into ClangASTSource.  Now ClangASTSource is ready
      to complete types given nothing more than a target
      and an AST context.
      
      llvm-svn: 143292
      fb3e4306
    • Sean Callanan's avatar
      Moved FindExternalLexicalDecls and a few smaller · ba0aca72
      Sean Callanan authored
      functions from ClangExpressionDeclMap to ClangASTSource.
      
      llvm-svn: 143276
      ba0aca72
    • Sean Callanan's avatar
      I moved the responsibility for interacting with the · 1ee44b74
      Sean Callanan authored
      AST importer on completing namespace mappings from
      ClangExpressionDeclMap to ClangASTSource.
      
      ClangASTSource now contains a TargetSP which it
      uses to lookup namespaces in all of a target's
      modules.  I will use the TargetSP in the future to
      look up globals.
      
      llvm-svn: 143275
      1ee44b74
    • Sean Callanan's avatar
      As part of a general refactoring of ClangASTSource to · eddeb3b9
      Sean Callanan authored
      allow it to complete types on behalf of any AST context
      (including the "scratch" AST context associated with
      the target), I scrapped its role as intermediary between
      the Clang parser and ClangExpressionDeclMap, and instead
      made ClangExpressionDeclMap inherit from ClangASTSource.
      
      After this, I will migrate the functions that complete
      types and perform namespace lookups from
      ClangExpressionDeclMap to ClangASTSource.  Ultimately
      ClangExpressionDeclMap's only responsiblity will be to
      look up variables and ensure that they are materialized
      and dematerialized correctly.
      
      llvm-svn: 143253
      eddeb3b9
  3. Oct 28, 2011
  4. Oct 27, 2011
  5. Oct 26, 2011
    • Sean Callanan's avatar
      Extended the IR interpreter to handle the variables · d2cb626a
      Sean Callanan authored
      "_cmd", "this", and "self".  These variables are handled
      differently from all other external variables used by
      the expression.  Other variables are used indirectly
      through the $__lldb_arg operand; only _cmd, this, and
      self are passed directly through the ABI.
      
      There are two modifications:
      
       - I added a function to ClangExpressionDeclMap that
         retrives the value of one of these variables by name;
         and
      
       - I made IRInterpreter fetch these values when needed,
         and ensured that the proper level of indirection is
         used.
      
      llvm-svn: 143065
      d2cb626a
  6. Oct 25, 2011
    • Sean Callanan's avatar
      Fixed a problem where local variables conflict with · efa7d1f1
      Sean Callanan authored
      types of the same name.  If a local variable with the
      given name is found (and we are not searching a
      specific namespace) we stop right then and there and
      report it.
      
      llvm-svn: 142962
      efa7d1f1
    • Sean Callanan's avatar
      Improved handling of static data in the expression · c70ed46d
      Sean Callanan authored
      parser.  Now expression like the following work as
      expected:
      
      -
      (lldb) expr struct { int a; int b; } $blah = { 10, 20 }
      <no result>
      (lldb) expr $blah
      (<anonymous struct at Parse:6:5>) $blah = {
        (int) a = 10
        (int) b = 20
      }
      -
      
      Now the IRForTarget subsystem knows how to handle
      static initializers of various composite types.
      
      Also removed an unnecessary parameter from
      ClangExpressionDeclMap::GetFunctionInfo.
      
      llvm-svn: 142936
      c70ed46d
    • Sean Callanan's avatar
      Fixed our handling of const functions, compensating · f463856f
      Sean Callanan authored
      for debug information that occasionally gets the
      const-ness of member functions wrong.  We used to
      demangle the name, add "const," and remangle it; now
      we handle the mangled name directly, which is more
      robust.
      
      llvm-svn: 142933
      f463856f
  7. Oct 22, 2011
  8. Oct 21, 2011
  9. Oct 20, 2011
  10. Oct 18, 2011
  11. Oct 14, 2011
    • Sean Callanan's avatar
      Improved expression logging. Now all calls to · 7dd98126
      Sean Callanan authored
      FindExternalVisibleDecls and FindExternalLexicalDecls
      are marked and given unique IDs, so that all logging
      done as part of their execution can be traced back to
      the proper call.
      
      Also there was some logging that really wasn't helpful
      in most cases so I disabled it unless verbose logging
      (log enable -v lldb expr) is enabled.
      
      llvm-svn: 141987
      7dd98126
    • Sean Callanan's avatar
      Improved logging for FindExternalLexicalDecls to · 187de461
      Sean Callanan authored
      make it easier to track down which members belong
      to which structs (and which call to 
      FindExternalLexicalDecls is doing the reporting).
      
      llvm-svn: 141930
      187de461
    • Sean Callanan's avatar
      Cleaned up a few functions that never get used. · c6bba3e4
      Sean Callanan authored
      Specifically, the expression parser used to use
      functions attached to SymbolContext to do lookups,
      but nowadays it searches a ModuleList or Module
      directly instead.  These functions had no
      remaining clients so I removed them to prevent
      bit rot.
      
      I also removed a stray callback function from
      ClangExpressionDeclMap.
      
      llvm-svn: 141899
      c6bba3e4
  12. Oct 13, 2011
    • Sean Callanan's avatar
      Enabled the namespace-specific search functionality, · ebe6067a
      Sean Callanan authored
      which had previously been commented out while I tested
      it.  It's not fully working yet, but it doesn't break
      our testsuite and it's an important piece of
      functionality.
      
      Also added some logging to SymbolFileDWARF to help
      diagnose entities that are found in a symbol file,
      but do not reside in the expected namespace.
      
      llvm-svn: 141894
      ebe6067a
    • Sean Callanan's avatar
      Moved the list of found namespaces into the search · c41e68b1
      Sean Callanan authored
      context object.  Having it populated and registered
      within a single FindExternalVisibleDecls call worked
      fine when there was only one call (i.e., when we were
      just looking in the global namespace).  
      
      However, now FindExternalVisibleDecls is called for
      nested namespaces as well, which means that it is
      called not once but many times (once per module in
      which the parent namespace appears).  This means that
      the namespace mapping is built up across many calls
      to the inferior FindExternalVisibleDecls, so I moved
      it into a data structure (the search context) that is
      shared by all calls.
      
      I also added some logging to make it easier to see
      what is happening during a namespace search, and 
      cleaned up some existing logging.
      
      llvm-svn: 141888
      c41e68b1
    • Sean Callanan's avatar
      Removed namespace qualification from symbol queries. · b96ff33b
      Sean Callanan authored
      llvm-svn: 141866
      b96ff33b
    • Sean Callanan's avatar
      Completed the glue that passes a ClangNamespaceDecl * · 213fdb8b
      Sean Callanan authored
      down through Module and SymbolVendor into SymbolFile.
      Added checks to SymbolFileDWARF that restrict symbol
      searches when a namespace is passed in.
      
      llvm-svn: 141847
      213fdb8b
    • Sean Callanan's avatar
      Now that we know the values are going to stick around, · 8e5b8b96
      Sean Callanan authored
      we don't need to look them up again when materializing.
      
      Switched over the materialization mechanism (for JIT
      expressions) and the lookup mechanism (for interpreted
      expressions) to use the VariableSP/Symbol that were
      found during parsing.
      
      llvm-svn: 141839
      8e5b8b96
    • Sean Callanan's avatar
      Extended the lifetime of Clang parser objects to the · e3aef1d0
      Sean Callanan authored
      lifetime of ClangExpressionDeclMap.  This allows
      ClangExpressionVariables found during parsing to be
      queried for their containing namespaces during
      expression execution.
      
      Other clients (like ClangFunction) explicitly delete
      this state, so they should not result in any memory
      leaks.
      
      llvm-svn: 141821
      e3aef1d0
  13. Oct 12, 2011
Loading