Skip to content
  1. Sep 22, 2011
  2. Sep 21, 2011
  3. Sep 20, 2011
  4. Sep 19, 2011
  5. Sep 18, 2011
    • Greg Clayton's avatar
      Don't put modules for .o files into the global shared module list. We · 762f7135
      Greg Clayton authored
      used to do this because we needed to find the shared pointer for a .o
      file when the .o file's module was needed in a SymbolContext since the
      module in a symbol context was a shared pointer. Now that we are using
      intrusive pointers we don't have this limitation anymore since any
      instrusive shared pointer can be made from a pointer to an object
      all on its own.
      
      Also switched over to having the Module and SymbolVendor use shared 
      pointers to their object files as had a leak on MacOSX when the 
      SymbolVendor's object file wasn't the same as the Module's (debug info
      in a stand along file (dSYM file)). Now everything will correctly clean
      itself up when the module goes away after an executable gets rebuilt.
      
      Now we correctly get rid of .o files that are used with the DWARF with 
      debug map executables on subsequent runs since the only shared pointer
      to the object files in from the DWARF symbol file debug map parser, and
      when the module gets replaced, it destroys to old one along with all .o 
      files. 
      
      Also added a small optimization when using BSD archives where we will
      remove old BSD containers from the shared list when they are outdated.
      
      llvm-svn: 140002
      762f7135
  6. 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
    • Greg Clayton's avatar
      Removed the function: · a2eee184
      Greg Clayton authored
      	ModuleSP
      	Module::GetSP();
      
      Since we are now using intrusive ref counts, we can easily turn any
      pointer to a module into a shared pointer just by assigning it.
      	
      
      llvm-svn: 139984
      a2eee184
    • Greg Clayton's avatar
      Convert lldb::ModuleSP to use an instrusive ref counted pointer. · 747bcb03
      Greg Clayton authored
      We had some cases where getting the shared pointer for a module from
      the global module list was causing a performance issue when debugging
      with DWARF in .o files. Now that the module uses intrusive ref counts,
      we can easily convert any pointer to a shared pointer.
      
      llvm-svn: 139983
      747bcb03
    • Johnny Chen's avatar
      Foe x86_64/i386, piggyback the hardware index of the fired watchpoint in the exception · 236888d0
      Johnny Chen authored
      data sent back to the debugger.  On the debugger side, use the opportunity during the
      StopInfoMachException::CreateStopReasonWithMachException() method to set the hardware index
      for the very watchpoint location.
      
      llvm-svn: 139975
      236888d0
  7. Sep 16, 2011
  8. Sep 15, 2011
    • Jim Ingham's avatar
      Track whether a process was Launched or Attached to. If Attached, the detach... · 8314c525
      Jim Ingham authored
      Track whether a process was Launched or Attached to.  If Attached, the detach when the debugger is destroyed, rather than killing the process.  Also added a Debugger::Clear, which gets called in Debugger::Destroy to deal with all the targets in the Debugger.  Also made the Driver's main loop call Destroy on the debugger, rather than just Destroying the currently selected Target's process.
      
      llvm-svn: 139853
      8314c525
    • Johnny Chen's avatar
      ecb623a6
    • Sean Callanan's avatar
      Fixed a problem where the symbol context was not · c2ff2744
      Sean Callanan authored
      being initialized properly in the absence of a
      process.
      
      llvm-svn: 139823
      c2ff2744
    • Sean Callanan's avatar
      Fixed a problem where the expression parser would · 64fe1994
      Sean Callanan authored
      attempt to obtain information from the process even
      in cases where the process isn't available.
      
      llvm-svn: 139803
      64fe1994
    • Sean Callanan's avatar
      This patch modifies the expression parser to allow it · 3bfdaa2a
      Sean Callanan authored
      to execute expressions even in the absence of a process.
      This allows expressions to run in situations where the
      target cannot run -- e.g., to perform calculations based
      on type information, or to inspect a binary's static
      data.
      
      This modification touches the following files:
      
      lldb-private-enumerations.h
        Introduce a new enum specifying the policy for
        processing an expression.  Some expressions should
        always be JITted, for example if they are functions
        that will be used over and over again.  Some
        expressions should always be interpreted, for
        example if the target is unsafe to run.  For most,
        it is acceptable to JIT them, but interpretation
        is preferable when possible.
      
      Target.[h,cpp]
        Have EvaluateExpression now accept the new enum.
      
      ClangExpressionDeclMap.[cpp,h]
        Add support for the IR interpreter and also make
        the ClangExpressionDeclMap more robust in the 
        absence of a process.
      
      ClangFunction.[cpp,h]
        Add support for the new enum.
      
      IRInterpreter.[cpp,h]
        New implementation.
      
      ClangUserExpression.[cpp,h]
        Add support for the new enum, and for running 
        expressions in the absence of a process.
      
      ClangExpression.h
        Remove references to the old DWARF-based method
        of evaluating expressions, because it has been
        superseded for now.
      
      ClangUtilityFunction.[cpp,h]
        Add support for the new enum.
      
      ClangExpressionParser.[cpp,h]
        Add support for the new enum, remove references
        to DWARF, and add support for checking whether
        the expression could be evaluated statically.
      
      IRForTarget.[h,cpp]
        Add support for the new enum, and add utility
        functions to support the interpreter.
      
      IRToDWARF.cpp
        Removed
      
      CommandObjectExpression.cpp
        Remove references to the obsolete -i option.
      
      Process.cpp 
        Modify calls to ClangUserExpression::Evaluate
        to pass the correct enum (for dlopen/dlclose)
      
      SBValue.cpp
        Add support for the new enum.
      
      SBFrame.cpp
        Add support for he new enum.
      
      BreakpointOptions.cpp
        Add support for the new enum.
      
      llvm-svn: 139772
      3bfdaa2a
    • Jim Ingham's avatar
      Take out all the separate places in Attach where we were getting the target... · 4299fdb1
      Jim Ingham authored
      Take out all the separate places in Attach where we were getting the target architecture, and move that but of functionality into CompleteAttach.
      
      llvm-svn: 139766
      4299fdb1
    • Jim Ingham's avatar
      Change the "attach" command to always wait synchronously for the target to... · 31412642
      Jim Ingham authored
      Change the "attach" command to always wait synchronously for the target to stop.  It's not very useful to return the prompt in mid-attach, and it makes reporting the result of the attach hard to do.
      
      llvm-svn: 139764
      31412642
    • Jim Ingham's avatar
      Fix ArchSpec::operator== to take the Triple into account as well as the Core. ... · 4d9695a2
      Jim Ingham authored
      Fix ArchSpec::operator== to take the Triple into account as well as the Core.  Also make the constructors explicit.
      
      llvm-svn: 139762
      4d9695a2
    • Jason Molenda's avatar
      · 995cd3a5
      Jason Molenda authored
      Have the FuncUnwinder object request & provide an architecture-defined
      UnwindPlan for unwinding from the first instruction of an otherwise
      unknown function call (GetUnwindPlanArchitectureDefaultAtFunctionEntry()).
      
      Update RegisterContextLLDB::GetFullUnwindPlanForFrame() to detect the
      case of a frame 0 at address 0x0 which indicates that we jumped through
      a NULL function pointer.  Use the ABI's FunctionEntryUnwindPlan to
      find the caller frame.
      
      These changes make it so lldb can identify the calling frame correctly
      in code like
      
      int main ()
      {
        void (*f)(void) = 0;
        f();
      }
      
      llvm-svn: 139760
      995cd3a5
    • Greg Clayton's avatar
      e1dadb83
    • Johnny Chen's avatar
  9. Sep 14, 2011
  10. Sep 13, 2011
Loading