Skip to content
  1. Mar 26, 2011
  2. Mar 25, 2011
  3. Mar 24, 2011
    • Greg Clayton's avatar
      Fixed the LLDB build so that we can have private types, private enums and · e0d378b3
      Greg Clayton authored
      public types and public enums. This was done to keep the SWIG stuff from
      parsing all sorts of enums and types that weren't needed, and allows us to
      abstract our API better.
      
      llvm-svn: 128239
      e0d378b3
    • Caroline Tice's avatar
      · 466327d6
      Caroline Tice authored
      Fix small bug in ThumbExpandImm_C; arguments to a call to 'bits' were
      in the wrong order.
      
      llvm-svn: 128237
      466327d6
    • Caroline Tice's avatar
      · 9b281e22
      Caroline Tice authored
      Add missing encodings for EmulateLDRRtRnImm (ARM insn emulation funciton).
      
      llvm-svn: 128229
      9b281e22
    • Greg Clayton's avatar
      Did a lot more work on abtracting and organizing the platforms. · 1cb6496e
      Greg Clayton authored
      On Mac OS X we now have 3 platforms:
      PlatformDarwin - must be subclassed to fill in the missing pure virtual funcs
                       but this implements all the common functionality between
                       remote-macosx and remote-ios. It also allows for another
                       platform to be used (remote-gdb-server for now) when doing
                       remote connections. Keeping this pluggable will allow for
                       flexibility.
      PlatformMacOSX - Now implements both local and remote macosx desktop platforms.
      PlatformRemoteiOS - Remote only iOS that knows how to locate SDK files in the
                          cached SDK locations on the host.
      
      A new agnostic platform has been created:
      PlatformRemoteGDBServer - this implements the platform using the GDB remote 
                                protocol and uses the built in lldb_private::Host
                                static functions to implement many queries.
      
      llvm-svn: 128193
      1cb6496e
  4. Mar 23, 2011
    • Stephen Wilson's avatar
      linux: simple support for process input and output · 26977167
      Stephen Wilson authored
      llvm-svn: 128137
      26977167
    • Stephen Wilson's avatar
      linux: PlatformLinux improvements · ecc11474
      Stephen Wilson authored
          
      Add a few missing virtual methods to PlatformLinux and have it register itself
      with PluginManager.
      
      llvm-svn: 128128
      ecc11474
    • Greg Clayton's avatar
      Added new platform commands: · d314e810
      Greg Clayton authored
      platform connect <args>
      platform disconnect
      
      Each platform can decide the args they want to use for "platform connect". I 
      will need to add a function that gets the connect options for the current
      platform as each one can have different options and argument counts.
      
      Hooked up more functionality in the PlatformMacOSX and PlatformRemoteiOS.
      Also started an platform agnostic PlatformRemoteGDBServer.cpp which can end
      up being used by one or more actual platforms. It can also be specialized and
      allow for platform specific commands.
      
      llvm-svn: 128123
      d314e810
  5. Mar 22, 2011
    • Caroline Tice's avatar
      · 3e1fa1ad
      Caroline Tice authored
      More fixes for ARM instruction emulation code:
        - Remove duplicate write from EmulateLDRRtPCRelative.
        - Add a missing encoding to EmulateADDSPImm.
        - Fix minor problems in Thumb instruction tables.
      
      llvm-svn: 128115
      3e1fa1ad
    • Greg Clayton's avatar
      Split the GDBRemoteCommunication class into three classes: · 576d8834
      Greg Clayton authored
      GDBRemoteCommunication - The base GDB remote communication class
      GDBRemoteCommunicationClient - designed to be used for clients the connect to
                                     a remote GDB server
      GDBRemoteCommunicationServer - designed to be used on the server side of a
                                     GDB server implementation.
      
      llvm-svn: 128070
      576d8834
    • Jim Ingham's avatar
      Add the ability to disassemble "n" instructions from the current PC, or the... · 37023b06
      Jim Ingham authored
      Add the ability to disassemble "n" instructions from the current PC, or the first "n" instructions in a function.
      Also added a "-p" flag that disassembles from the current pc.
      
      llvm-svn: 128063
      37023b06
  6. Mar 20, 2011
    • Greg Clayton's avatar
      Split all of the core of LLDB.framework/lldb.so into a · 7a5388bf
      Greg Clayton authored
      static archive that can be linked against. LLDB.framework/lldb.so
      exports a very controlled API. Splitting the API into a static
      library allows other tools (debugserver for now) to use the power
      of the LLDB debugger core, yet not export it as its API is not
      portable or maintainable. The Host layer and many of the other
      internal only APIs can now be statically linked against.
      
      Now LLDB.framework/lldb.so links against "liblldb-core.a" instead
      of compiling the .o files only for the shared library. This fix
      is only for compiling with Xcode as the Makefile based build already
      does this.
      
      The Xcode projecdt compiler has been changed to LLVM. Anyone using
      Xcode 3 will need to manually change the compiler back to GCC 4.2,
      or update to Xcode 4.
      
      llvm-svn: 127963
      7a5388bf
  7. Mar 19, 2011
    • Greg Clayton's avatar
      Added more platform support. There are now some new commands: · ded470d3
      Greg Clayton authored
      platform status -- gets status information for the selected platform
      platform create <platform-name> -- creates a new instance of a remote platform
      platform list -- list all available platforms
      platform select -- select a platform instance as the current platform (not working yet)
      
      When using "platform create" it will create a remote platform and make it the
      selected platform. For instances for iPhone OS debugging on Mac OS X one can 
      do:
      
      (lldb) platform create remote-ios --sdk-version=4.0
      Remote platform: iOS platform
      SDK version: 4.0
      SDK path: "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0"
      Not connected to a remote device.
      (lldb) file ~/Documents/a.out
      Current executable set to '~/Documents/a.out' (armv6).
      (lldb) image list
      [  0] /Volumes/work/gclayton/Documents/devb/attach/a.out
      [  1] /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0/Symbols/usr/lib/dyld
      [  2] /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0/Symbols/usr/lib/libSystem.B.dylib
      
      
      Note that this is all happening prior to running _or_ connecting to a remote
      platform. Once connected to a remote platform the OS version might change which
      means we will need to update our dependecies. Also once we run, we will need
      to match up the actualy binaries with the actualy UUID's to files in the
      SDK, or download and cache them locally.
      
      This is just the start of the remote platforms, but this modification is the
      first iteration in getting the platforms really doing something.
      
      llvm-svn: 127934
      ded470d3
  8. Mar 18, 2011
    • Caroline Tice's avatar
      · 77c13fe3
      Caroline Tice authored
      Fix various small problems with EmulateInstructionARM::EmulateSTRRtSP.
      
      llvm-svn: 127898
      77c13fe3
    • Jim Ingham's avatar
      Relax the constraint on the types of ValueObjects that we'll by default try the · b7603bb4
      Jim Ingham authored
      ObjC runtime for print object to Pointer AND Integer (from just pointer.)
      
      llvm-svn: 127841
      b7603bb4
    • Caroline Tice's avatar
      · 4c753376
      Caroline Tice authored
      Make all the codee that attempts to read the PC consistently use
      ReadCoreReg (which 'does the right thing', adding to pc when needed);
      fixed places in code where extra addition was being passed along.
      
      Fix bug in insn tables.
      
      llvm-svn: 127838
      4c753376
  9. Mar 17, 2011
  10. Mar 16, 2011
    • Caroline Tice's avatar
      · aaf5ddcf
      Caroline Tice authored
      Add code to emulate STRH (Register) Arm instruction.
      
      Remove inaccurate comments from EmulateInstruction::Context definition.
      
      Fix contexts in a few arm instruction emulation routines.
      
      llvm-svn: 127770
      aaf5ddcf
    • Caroline Tice's avatar
      · fe28f1bf
      Caroline Tice authored
      Fix various small bugs found in the instruction emulation functions.
      
      llvm-svn: 127712
      fe28f1bf
  11. Mar 15, 2011
  12. Mar 10, 2011
  13. Mar 09, 2011
  14. Mar 08, 2011
    • Greg Clayton's avatar
      LLDB now has "Platform" plug-ins. Platform plug-ins are plug-ins that provide · e996fd30
      Greg Clayton authored
      an interface to a local or remote debugging platform. By default each host OS
      that supports LLDB should be registering a "default" platform that will be
      used unless a new platform is selected. Platforms are responsible for things
      such as:
      - getting process information by name or by processs ID
      - finding platform files. This is useful for remote debugging where there is 
        an SDK with files that might already or need to be cached for debug access.
      - getting a list of platform supported architectures in the exact order they
        should be selected. This helps the native x86 platform on MacOSX select the
        correct x86_64/i386 slice from universal binaries.
      - Connect to remote platforms for remote debugging
      - Resolving an executable including finding an executable inside platform
        specific bundles (macosx uses .app bundles that contain files) and also
        selecting the appropriate slice of universal files for a given platform.
      
      So by default there is always a local platform, but remote platforms can be
      connected to. I will soon be adding a new "platform" command that will support
      the following commands:
      (lldb) platform connect --name machine1 macosx connect://host:port
      Connected to "machine1" platform.
      (lldb) platform disconnect macosx
      
      This allows LLDB to be well setup to do remote debugging and also once 
      connected process listing and finding for things like:
      (lldb) process attach --name x<TAB>
      
      The currently selected platform plug-in can now auto complete any available
      processes that start with "x". The responsibilities for the platform plug-in
      will soon grow and expand.
      
      llvm-svn: 127286
      e996fd30
    • Stephen Wilson's avatar
      Fix ObjectFileElf::GetEntryPointAddress() · d126c8cc
      Stephen Wilson authored
      ELF object files do not implicitly have a symbol named "start" as an entry
      point.  For example, on Linux it is often named "_start", but can be trivially
      set to any symbol by passing an --entry argument to the linker.
      
      Use the ELF header to determine the entry point and resolve the associated
      section based on that address.
      
      Also, update the linux dynamic loader to call GetEntryPointAddress instead of
      GetEntryPoint.
      
      llvm-svn: 127218
      d126c8cc
    • Stephen Wilson's avatar
      Add Makefile support for the new DynamicLoaderStatic plugin. · 8f0daa28
      Stephen Wilson authored
      llvm-svn: 127215
      8f0daa28
    • Jim Ingham's avatar
      I didn't notice there was already an ObjectFile::GetEntryPoint. Move that... · bd3f2606
      Jim Ingham authored
      I didn't notice there was already an ObjectFile::GetEntryPoint.  Move that over to GetEntryPointAddress 'cause that's more consistent with other functions in ObjectFile, do the mutatis mutandi and also in the ELF case I return a section offset address rather than a bare load address.
      
      llvm-svn: 127205
      bd3f2606
    • Jim Ingham's avatar
      Reverting the part of the debug-in-ofile patch from earlier today that removes... · 5ca40258
      Jim Ingham authored
      Reverting the part of the debug-in-ofile patch from earlier today that removes them from the shared module list.  That was causing a bunch of asserts.  Greg is working on a better fix.
      
      llvm-svn: 127201
      5ca40258
    • Jim Ingham's avatar
      Add a method "GetEntryPoint" to the ObjectFile class, and implement it on... · 672e6f59
      Jim Ingham authored
      Add a method "GetEntryPoint" to the ObjectFile class, and implement it on MachO & ELF - though the ELF implementation is probably a little weak.  Then use this method in place of directly looking for "start" in the ThreadPlanCallFunction constructor to find the stopping point for our function evaluation.
      
      llvm-svn: 127194
      672e6f59
  15. Mar 07, 2011
  16. Mar 05, 2011
  17. Mar 04, 2011
  18. Mar 03, 2011
    • Caroline Tice's avatar
      · 94f87e37
      Caroline Tice authored
      Add code to emulate RFE Arm instruction.
      
      Add new instruction context for RFE instruction.
      
      Add several new helper functions to help emulate RFE instruction
      (including CurrentModeIsPrivileged, BadMode, and CPSRWriteByInstr).
      
      llvm-svn: 126965
      94f87e37
Loading