Skip to content
  1. Dec 13, 2010
    • Sean Callanan's avatar
      Added support for generating expressions that have · 17827830
      Sean Callanan authored
      access to the members of the Objective-C self object.
      
      The approach we take is to generate the method as a
      @category on top of the self object, and to pass the
      "self" pointer to it.  (_cmd is currently NULL.)
      
      Most changes are in ClangExpressionDeclMap, but the
      change that adds support to the ABIs to pass _cmd
      touches a fair amount of code.
      
      llvm-svn: 121722
      17827830
  2. Dec 08, 2010
    • Greg Clayton's avatar
      Added the ability to dump sections to a certain depth (for when sections · 10177aa0
      Greg Clayton authored
      have children sections).
      
      Modified SectionLoadList to do it's own multi-threaded protected on its map.
      The ThreadSafeSTLMap class was difficult to deal with and wasn't providing
      much utility, it was only getting in the way.
      
      Make sure when the communication read thread is about to exit, it clears the
      thread in the main class.
      
      Fixed the ModuleList to correctly ignore architectures and UUIDs if they aren't
      valid when searching for a matching module. If we specified a file with no arch,
      and then modified the file and loaded it again, it would not match on subsequent
      searches if the arch was invalid since it would compare an invalid architecture
      to the one that was found or selected within the shared library or executable.
      This was causing stale modules to stay around in the global module list when they
      should have been removed.
      
      Removed deprecated functions from the DynamicLoaderMacOSXDYLD class.
      
      Modified "ProcessGDBRemote::IsAlive" to check if we are connected to a gdb
      server and also make sure our process hasn't exited.
      
      llvm-svn: 121236
      10177aa0
    • Greg Clayton's avatar
      Fixed up the error message for when a file is not supported. · bc5cad6c
      Greg Clayton authored
      llvm-svn: 121235
      bc5cad6c
  3. Dec 07, 2010
    • Greg Clayton's avatar
      When shared libraries are unloaded, they are now removed from the target · a4d78300
      Greg Clayton authored
      ModuleList so they don't show up in the images. Breakpoint locations that are
      in shared libraries that get unloaded will persist though so that if you
      have plug-ins that load/unload and you have a breakpoint set on functions
      in the plug-ins, the hit counts will persist between loads/unloads.
      
      llvm-svn: 121069
      a4d78300
  4. Dec 05, 2010
  5. Dec 04, 2010
  6. Dec 03, 2010
    • Caroline Tice's avatar
      Add '-no-stdio' option to 'process launch' command, which causes the · f8da8631
      Caroline Tice authored
      inferior to be launched without setting up terminal stdin/stdout for it
      (leaving the lldb command line accessible while the program is executing).
      Also add a user settings variable, 'target.process.disable-stdio' to allow
      the user to set this globally rather than having to use the command option
      each time the process is launched.
      
      llvm-svn: 120825
      f8da8631
  7. Dec 02, 2010
    • Johnny Chen's avatar
      Fixed a typo in comment. · c4221e47
      Johnny Chen authored
      llvm-svn: 120733
      c4221e47
    • Caroline Tice's avatar
      · 82305fc5
      Caroline Tice authored
      Add proper EOF handling to Communication & Connection classes:
      
      Add bool member to Communication class indicating whether the
      Connection should be closed on receiving an EOF or not.  Update the
      Connection read to return an EOF status when appropriate.  Modify the
      Communication class to pass the EOF along or not, and to close the
      Connection or not, as appropriate.
      
      llvm-svn: 120723
      82305fc5
  8. Nov 30, 2010
    • Jim Ingham's avatar
      Moved the code in ClangUserExpression that set up & ran the thread plan with... · f48169bb
      Jim Ingham authored
      Moved the code in ClangUserExpression that set up & ran the thread plan with timeouts, and restarting with all threads into a utility function in Process.  This required a bunch of renaming. 
      
      Added a ThreadPlanCallUserExpression that differs from ThreadPlanCallFunction in that it holds onto a shared pointer to its ClangUserExpression so that can't go away before the thread plan is done using it.
      
      Fixed the stop message when you hit a breakpoint while running a user expression so it is more obvious what has happened.
      
      llvm-svn: 120386
      f48169bb
  9. Nov 20, 2010
    • Jason Molenda's avatar
      Change the DWARFExpression::Evaluate methods to take an optional · 2d107dd0
      Jason Molenda authored
      RegisterContext* - normally this is retrieved from the ExecutionContext's
      StackFrame but when we need to evaluate an expression while creating
      the stack frame list this can be a little tricky.
      
      Add DW_OP_deref_size, needed for the _sigtramp FDE expression.
      
      Add support for processing DWARF expressions in RegisterContextLLDB.
      
      Update callers to DWARFExpression::Evaluate.
      
      llvm-svn: 119885
      2d107dd0
  10. Nov 19, 2010
    • Caroline Tice's avatar
      Add the ability to catch and do the right thing with Interrupts (often control-c) · efed6131
      Caroline Tice authored
      and end-of-file (often control-d).
      
      llvm-svn: 119837
      efed6131
    • Greg Clayton's avatar
      Fixed an issue where the UserSettingsControllers were being created out of · dbe54508
      Greg Clayton authored
      order and this was causing the target, process and thread trees to not be
      available.
      
      llvm-svn: 119784
      dbe54508
    • Greg Clayton's avatar
      Cleaned up code that wasn't using the Initialize and Terminate paradigm by · 99d0faf2
      Greg Clayton authored
      changing it to use it. There was an extra parameter added to the static
      accessor global user settings controllers that wasn't needed. A bool was being
      used as a parameter to the accessor just so it could be used to clean up 
      the global user settings controller which is now fixed by splitting up the
      initialization into the "static void Class::Initialize()", access into the
      "static UserSettingsControllerSP & Class::GetSettingsController()", and
      cleanup into "static void Class::Terminate()".
      
      Also added initialize and terminate calls to the logging code to avoid issues
      when LLDB is shutting down. There were cases after the logging was switched
      over to use shared pointers where we could crash if the global destructor
      chain was being run and it causes the log to be destroyed and any any logging
      occurred.
      
      llvm-svn: 119757
      99d0faf2
  11. Nov 18, 2010
    • Greg Clayton's avatar
      Added the ability to get more information on the SBThread's stop reason · 4e78f606
      Greg Clayton authored
      by being able to get the data count and data. Each thread stop reason
      has one or more data words that can help describe the stop. To do this
      I added:
      
          size_t
      	SBThread::GetStopReasonDataCount();
      
      	uint64_t
      	SBThread::GetStopReasonDataAtIndex(uint32_t idx);
      
      llvm-svn: 119720
      4e78f606
    • Greg Clayton's avatar
      Fixed Process::Halt() as it was broken for "process halt" after recent changes · 3af9ea56
      Greg Clayton authored
      to the DoHalt down in ProcessGDBRemote. I also moved the functionality that
      was in ProcessGDBRemote::DoHalt up into Process::Halt so not every class has
      to implement a tricky halt/resume on the internal state thread. The 
      functionality is the same as it was before with two changes:
      - when we eat the event we now just reuse the event we consume when the private
        state thread is paused and set the interrupted bool on the event if needed
      - we also properly update the Process::m_public_state with the state of the
        event we consume.
        
      Prior to this, if you issued a "process halt" it would eat the event, not 
      update the process state, and then produce a new event with the interrupted
      bit set and send it. Anyone listening to the event would get the stopped event
      with a process that whose state was set to "running".
      
      Fixed debugserver to not have to be spawned with the architecture of the
      inferior process. This worked fine for launching processes, but when attaching
      to processes by name or pid without a file in lldb, it would fail.
      
      Now debugserver can support multiple architectures for a native debug session
      on the current host. This currently means i386 and x86_64 are supported in
      the same binary and a x86_64 debugserver can attach to a i386 executable.
      This change involved a lot of changes to make sure we dynamically detect the
      correct registers for the inferior process.
      
      llvm-svn: 119680
      3af9ea56
    • Jim Ingham's avatar
      The thread plan destructors may call Thread virtual methods. That means they... · 773d981c
      Jim Ingham authored
      The thread plan destructors may call Thread virtual methods.  That means they have to get cleaned up in the derived class's destructor.  Make sure that happens.
      
      llvm-svn: 119675
      773d981c
  12. Nov 17, 2010
  13. Nov 16, 2010
    • Caroline Tice's avatar
      Make processes use InputReaders for their input. Move the process · ef5c6d02
      Caroline Tice authored
      ReadThread stuff into the main Process class (out of the Process Plugins).
      This has the (intended) side effect of disabling the command line tool
      from reading input/commands while the process is running (the input is
      directed to the running process rather than to the command interpreter).
      
      llvm-svn: 119329
      ef5c6d02
  14. Nov 13, 2010
    • Greg Clayton's avatar
      Modified the lldb_private::Type clang type resolving code to handle three · 526e5afb
      Greg Clayton authored
      cases when getting the clang type:
      - need only a forward declaration
      - need a clang type that can be used for layout (members and args/return types)
      - need a full clang type
      
      This allows us to partially parse the clang types and be as lazy as possible.
      The first case is when we just need to declare a type and we will complete it
      later. The forward declaration happens only for class/union/structs and enums.
      The layout type allows us to resolve the full clang type _except_ if we have
      any modifiers on a pointer or reference (both R and L value). In this case
      when we are adding members or function args or return types, we only need to
      know how the type will be laid out and we can defer completing the pointee
      type until we later need it. The last type means we need a full definition for
      the clang type.
      
      Did some renaming of some enumerations to get rid of the old "DC" prefix (which
      stands for DebugCore which is no longer around).
      
      Modified the clang namespace support to be almost ready to be fed to the
      expression parser. I made a new ClangNamespaceDecl class that can carry around
      the AST and the namespace decl so we can copy it into the expression AST. I
      modified the symbol vendor and symbol file plug-ins to use this new class.
      
      llvm-svn: 118976
      526e5afb
  15. Nov 12, 2010
  16. Nov 11, 2010
  17. Nov 10, 2010
  18. Nov 08, 2010
  19. Nov 06, 2010
    • Greg Clayton's avatar
      Modified all logging calls to hand out shared pointers to make sure we · 2d4edfbc
      Greg Clayton authored
      don't crash if we disable logging when some code already has a copy of the
      logger. Prior to this fix, logs were handed out as pointers and if they were
      held onto while a log got disabled, then it could cause a crash. Now all logs
      are handed out as shared pointers so this problem shouldn't happen anymore.
      We are also using our new shared pointers that put the shared pointer count
      and the object into the same allocation for a tad better performance.
      
      llvm-svn: 118319
      2d4edfbc
  20. Nov 05, 2010
  21. Nov 04, 2010
    • Jim Ingham's avatar
      Add a ObjC V1 runtime, and a generic AppleObjCRuntime plugin. · 2a5e0f03
      Jim Ingham authored
      Also move the Checker creation into the Apple Runtime code.
      
      llvm-svn: 118255
      2a5e0f03
    • Greg Clayton's avatar
      Added support for loading and unloading shared libraries. This was done by · 8f343b09
      Greg Clayton authored
      adding support into lldb_private::Process:
      
          virtual uint32_t
          lldb_private::Process::LoadImage (const FileSpec &image_spec, 
                                            Error &error);
      
          virtual Error
          lldb_private::Process::UnloadImage (uint32_t image_token);
      
      There is a default implementation that should work for both linux and MacOSX.
      This ability has also been exported through the SBProcess API:
      
          uint32_t
          lldb::SBProcess::LoadImage (lldb::SBFileSpec &image_spec, 
                                      lldb::SBError &error);
      
          lldb::SBError
          lldb::SBProcess::UnloadImage (uint32_t image_token);
      
      Modified the DynamicLoader plug-in interface to require it to be able to 
      tell us if it is currently possible to load/unload a shared library:
      
          virtual lldb_private::Error
          DynamicLoader::CanLoadImage () = 0;
      
      This way the dynamic loader plug-ins are allows to veto whether we can 
      currently load a shared library since the dynamic loader might know if it is
      currenlty loading/unloading shared libraries. It might also know about the
      current host system and know where to check to make sure runtime or malloc
      locks are currently being held.
      
      Modified the expression parser to have ClangUserExpression::Evaluate() be
      the one that causes the dynamic checkers to be loaded instead of other code
      that shouldn't have to worry about it.
      
      llvm-svn: 118227
      8f343b09
    • Sean Callanan's avatar
      Re-enabled LLDB's pointer checkers, and moved the · 10af7c43
      Sean Callanan authored
      implementation of the Objective-C object checkers
      into the Objective-C language runtime.
      
      llvm-svn: 118226
      10af7c43
  22. Nov 03, 2010
  23. Nov 01, 2010
Loading