Skip to content
  1. 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
  2. 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
  3. Oct 22, 2011
  4. Oct 21, 2011
  5. Oct 20, 2011
  6. Oct 18, 2011
  7. 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
  8. 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
  9. Oct 12, 2011
  10. Oct 08, 2011
  11. Sep 26, 2011
    • Sean Callanan's avatar
      Factored out handling of the source code for an · 9bc83841
      Sean Callanan authored
      expression into a separate class.  This class
      encapsulates wrapping the function as needed.  I
      am also moving from using booleans to indicate
      what the expression's language should be to using
      lldb::LanguageType instead.
      
      llvm-svn: 140545
      9bc83841
  12. Sep 22, 2011
    • Greg Clayton's avatar
      Converted the lldb_private::Process over to use the intrusive · c14ee32d
      Greg Clayton authored
      shared pointers.
      
      Changed the ExecutionContext over to use shared pointers for
      the target, process, thread and frame since these objects can
      easily go away at any time and any object that was holding onto
      an ExecutionContext was running the risk of using a bad object.
      
      Now that the shared pointers for target, process, thread and
      frame are just a single pointer (they all use the instrusive
      shared pointers) the execution context is much safer and still
      the same size. 
      
      Made the shared pointers in the the ExecutionContext class protected
      and made accessors for all of the various ways to get at the pointers,
      references, and shared pointers.
      
      llvm-svn: 140298
      c14ee32d
    • Sean Callanan's avatar
      Fixed a problem with the IR interpreter that caused · 0886e565
      Sean Callanan authored
      it to generate result variables that were not bound
      to their underlying data.  This allowed the SBValue
      class to use the interpreter (if possible).
      
      Also made sure that any result variables that point
      to stack allocations in the stack frame of the
      interpreted expressions do not get live data.
      
      llvm-svn: 140285
      0886e565
  13. Sep 21, 2011
  14. Sep 20, 2011
  15. Sep 17, 2011
    • Greg Clayton's avatar
      Adopt the intrusive pointers in: · 4d122c40
      Greg Clayton authored
      lldb_private::Breakpoint
      lldb_private::BreakpointLocations
      lldb_private::BreakpointSite
      lldb_private::Debugger
      lldb_private::StackFrame
      lldb_private::Thread
      lldb_private::Target
      
      llvm-svn: 139985
      4d122c40
Loading