Skip to content
  1. Dec 14, 2012
  2. Dec 07, 2012
  3. Dec 05, 2012
  4. Aug 23, 2012
  5. Jun 01, 2012
  6. Apr 14, 2012
    • Johnny Chen's avatar
      Patch from Viktor Kutuzov <vkutuzov@accesssoftek.com>: · 7b9f93a1
      Johnny Chen authored
      Hello everyone,
       
      please find the attached patch for TOT and lldb-platform-work branch, which provides the following changes:
       - fixed a crash in the ProcessPOSIX constructor when an executable module object is not yet created.
       - added support for the multi instanciated FreeBSD platform objects (the local host and remote as example).
       - enabled the remote gdb plugin on FreeBSD.
      
      llvm-svn: 154724
      7b9f93a1
  7. Apr 05, 2012
  8. Mar 22, 2012
    • Greg Clayton's avatar
      Since we are having issues with the new LLVM MC disassembler, we can have · f8712de5
      Greg Clayton authored
      them both installed with the LLVM MC version being the default. I renamed the
      name of the LLVM MC disassembler plug-in to "llvm-mc" and the LLVM enhanced
      disassembly plug-in to "llvm-edis" and they can both be installed for now.
      
      To use the "llvm-edis" disassembler, you can just specify it while disassembling:
      
      (lldb) disassemble --plugin llvm-edis --name main
      (lldb) disassemble --plugin llvm-mc --name main
      
      This will allow us to compare the output of the two disassembler and eventually
      deprecate the old one when the new one is ready. But it does use the new disassembler
      by default so we continue to test it on a daily basis.
      
      llvm-svn: 153231
      f8712de5
  9. Mar 20, 2012
    • Greg Clayton's avatar
      Platforms can now auto-select themselves if you specify a full target triple... · b3a40ba8
      Greg Clayton authored
      Platforms can now auto-select themselves if you specify a full target triple when doing a "target create" command.
      
      Each platform now knows if it can handle an architecture and a platform can be found using an architecture. Each platform can look at the arch, vendor and OS and know if it should be used or not.
      
      llvm-svn: 153104
      b3a40ba8
  10. Feb 27, 2012
  11. Feb 25, 2012
    • Greg Clayton's avatar
      <rdar://problem/9886712> · 722cec29
      Greg Clayton authored
      Added a dedicated platform for the iOS simulator. This helps us to find the
      correct files for a simulator binary before running and helps us select the 
      right arch (i386 only) for files when we load them.
      
      llvm-svn: 151436
      722cec29
  12. Feb 24, 2012
  13. Feb 17, 2012
    • Sean Callanan's avatar
      Added a new disassembler plugin, DisassemblerLLVMC, · 95e5c630
      Sean Callanan authored
      which uses the Disassembler.h interface to the LLVM
      disassemblers rather than the EnhancedDisassembly.h
      interface.  Disassembler.h is a better-maintained
      API and will be stabler in the long term.
      
      Currently the output from Disassembler.h does not
      provide for symbolic disassembly in all the places
      that the old disassembler did, so I have gated (and
      disabled) the disassembler.  It'll be easy to flip
      the switch later.
      
      In the meantime, to enable the new disassembler,
      uncomment "#define USE_NEW_DISASSEMBLER" in
      lldb.cpp.
      
      llvm-svn: 150772
      95e5c630
  14. Feb 09, 2012
    • Greg Clayton's avatar
      First pass at mach-o core file support is in. It currently works for x86_64 · c3776bf2
      Greg Clayton authored
      user space programs. The core file support is implemented by making a process
      plug-in that will dress up the threads and stack frames by using the core file
      memory. 
      
      Added many default implementations for the lldb_private::Process functions so
      that plug-ins like the ProcessMachCore don't need to override many many 
      functions only to have to return an error.
      
      Added new virtual functions to the ObjectFile class for extracting the frozen
      thread states that might be stored in object files. The default implementations
      return no thread information, but any platforms that support core files that
      contain frozen thread states (like mach-o) can make a module using the core
      file and then extract the information. The object files can enumerate the 
      threads and also provide the register state for each thread. Since each object
      file knows how the thread registers are stored, they are responsible for 
      creating a suitable register context that can be used by the core file threads.
      
      Changed the process CreateInstace callbacks to return a shared pointer and
      to also take an "const FileSpec *core_file" parameter to allow for core file
      support. This will also allow for lldb_private::Process subclasses to be made
      that could load crash logs. This should be possible on darwin where the crash
      logs contain all of the stack frames for all of the threads, yet the crash
      logs only contain the registers for the crashed thrad. It should also allow
      some variables to be viewed for the thread that crashed.
      
      llvm-svn: 150154
      c3776bf2
  15. Jan 05, 2012
  16. Oct 27, 2011
    • Greg Clayton's avatar
      Added support for the new ".apple_objc" accelerator tables. These tables are · 5009f9d5
      Greg Clayton authored
      in the same hashed format as the ".apple_names", but they map objective C
      class names to all of the methods and class functions. We need to do this 
      because in the DWARF the methods for Objective C are never contained in the
      class definition, they are scattered about at the translation unit level and
      they don't even have attributes that say the are contained within the class
      itself. 
      
      Added 3 new formats which can be used to display data:
      
          eFormatAddressInfo
          eFormatHexFloat
          eFormatInstruction
          
      eFormatAddressInfo describes an address such as function+offset and file+line,
      or symbol + offset, or constant data (c string, 2, 4, 8, or 16 byte constants).
      The format character for this is "A", the long format is "address".
      
      eFormatHexFloat will print out the hex float format that compilers tend to use.
      The format character for this is "X", the long format is "hex float".
      
      eFormatInstruction will print out disassembly with bytes and it will use the
      current target's architecture. The format character for this is "i" (which
      used to be being used for the integer format, but the integer format also has
      "d", so we gave the "i" format to disassembly), the long format is 
      "instruction".
      
      Mate the lldb::FormatterChoiceCriterion enumeration private as it should have
      been from the start. It is very specialized and doesn't belong in the public 
      API.
      
      llvm-svn: 143114
      5009f9d5
  17. Oct 11, 2011
  18. Oct 05, 2011
  19. Sep 28, 2011
  20. Sep 09, 2011
  21. Sep 02, 2011
    • Greg Clayton's avatar
      Added support for accessing and loading our new .debug_names and .debug_types · f9eec20b
      Greg Clayton authored
      DWARF accelerator table sections to the DWARF parser. These sections are similar
      to the .debug_pubnames and .debug_pubtypes, but they are designed to be hash tables
      that are saved to disc in a way that the sections can just be loaded into memory
      and used without any work on the debugger side. The .debug_pubnames and .debug_pubtypes
      sections are not ordered, contain a copy of the name in the section itself which
      makes these sections quite large, they only include publicly exported names (so no
      static functions, no types defined inside functions), many compilers put different
      information in them making them very unreliable so most debugger ignore these sections
      and parse the DWARF on their own. The tables must also be parsed and sorted in order 
      to be used effectively. The new sections can be quickly loaded and very efficiently be used 
      to do name to DIE lookups with very little up front work. The format of these new
      sections will be changing while we work out the bugs, but we hope to have really 
      fast name to DIE lookups soon.
      
      llvm-svn: 138979
      f9eec20b
  22. Aug 23, 2011
  23. Aug 22, 2011
    • Greg Clayton's avatar
      Added a new plug-in type: lldb_private::OperatingSystem. The operating system · 56d9a1b3
      Greg Clayton authored
      plug-ins are add on plug-ins for the lldb_private::Process class that can add
      thread contexts that are read from memory. It is common in kernels to have
      a lot of threads that are not currently executing on any cores (JTAG debugging
      also follows this sort of thing) and are context switched out whose state is
      stored in memory data structures. Clients can now subclass the OperatingSystem
      plug-ins and then make sure their Create functions correcltly only enable 
      themselves when the right binary/target triple are being debugged. The 
      operating system plug-ins get a chance to attach themselves to processes just
      after launching or attaching and are given a lldb_private::Process object 
      pointer which can be inspected to see if the main executable, target triple,
      or any shared  libraries match a case where the OS plug-in should be used.
      Currently the OS plug-ins can create new threads, define the register contexts
      for these threads (which can all be different if desired), and populate and
      manage the thread info (stop reason, registers in the register context) as
      the debug session goes on.
      
      llvm-svn: 138228
      56d9a1b3
  24. Aug 02, 2011
    • Johnny Chen's avatar
      Patch by David Forsythe to build lldb on FreeBSD! · 8f3d8384
      Johnny Chen authored
      I did not take the patch for ClangExpressionParser.cpp since there was a
      recent change by Peter for the same line.  Feel free to disagree. :-)
      
      Reference:
      ----------------------------------------------------------------------
      r136580 | pcc | 2011-07-30 15:42:24 -0700 (Sat, 30 Jul 2011) | 3 lines
      
      Add reloc arg to standard JIT createJIT()
      
      Fixes non-__APPLE__ build.  Patch by Matt Johnson!
      ----------------------------------------------------------------------
      
      Also, I ignore the part of the patch to remove the RegisterContextDarwin*.h/.cpp.
      
      llvm-svn: 136720
      8f3d8384
  25. Aug 01, 2011
  26. Jul 17, 2011
    • Greg Clayton's avatar
      Added a boolean to the pure virtual lldb_private::Process::CanDebug(...) · 3a29bdbe
      Greg Clayton authored
      method so process plug-ins that are requested by name can answer yes when
      asked if they can debug a target that might not have any file in the target.
      
      Modified the ConnectionFileDescriptor to have both a read and a write file
      descriptor. This allows us to support UDP, and eventually will allow us to
      support pipes. The ConnectionFileDescriptor class also has a file descriptor
      type for each of the read and write file decriptors so we can use the correct
      read/recv/recvfrom call when reading, or write/send/sendto for writing.
      
      Finished up an initial implementation of UDP where you can use the "udp://"
      URL to specify a host and port to connect to:
      
      (lldb) process connect --plugin kdp-remote udp://host:41139
      
      This will cause a ConnectionFileDescriptor to be created that can send UDP
      packets to "host:41139", and it will also bind to a localhost port that can
      be given out to receive the connectionless UDP reply. 
      
      Added the ability to get to the IPv4/IPv6 socket port number from a 
      ConnectionFileDescriptor instance if either file descriptor is a socket.
      
      The ProcessKDP can now successfully connect to a remote kernel and detach
      using the above "processs connect" command!!! So far we have the following
      packets working:
          KDP_CONNECT
          KDP_DISCONNECT
          KDP_HOSTINFO
          KDP_VERSION
          KDP_REATTACH
      
      Now that the packets are working, adding new packets will go very quickly.
      
      llvm-svn: 135363
      3a29bdbe
  27. Jul 08, 2011
    • Greg Clayton's avatar
      LLDB now has a Kernel dynamic linker that can detect where kexts are · df0b7d5c
      Greg Clayton authored
      loaded. It locks onto *-apple-darwin binaries where the binary has
      a "__KLD" segment. Soon I will modify the lldb_private::ObjectFile
      class to return an executable type which will be an enum with values
      something like:
      eObjectFileTypeUserExectable,
      eObjectFileTypeUserSharedLibrary,
      eObjectFileTypeKernelExectable,
      eObjectFileTypeKernelSharedLibrary,
      eObjectFileTypeObjectFile,
      eObjectFileTypeCoreFile
      
      But for now we look at the section since a user and kernel mach-o
      executable have the same mach-o file type.
      
      llvm-svn: 134682
      df0b7d5c
  28. May 19, 2011
  29. May 11, 2011
    • Greg Clayton's avatar
      Moved all code from ArchDefaultUnwindPlan and ArchVolatileRegs into their · 31f1d2f5
      Greg Clayton authored
      respective ABI plugins as they were plug-ins that supplied ABI specfic info.
      
      Also hookep up the UnwindAssemblyInstEmulation so that it can generate the
      unwind plans for ARM.
      
      Changed the way ABI plug-ins are handed out when you get an instance from
      the plug-in manager. They used to return pointers that would be mananged
      individually by each client that requested them, but now they are handed out
      as shared pointers since there is no state in the ABI objects, they can be
      shared.
      
      llvm-svn: 131193
      31f1d2f5
  30. Apr 26, 2011
    • Greg Clayton's avatar
      Changed the emulate instruction function to take emulate options which · 2ed751bd
      Greg Clayton authored
      are defined as enumerations. Current bits include:
      
              eEmulateInstructionOptionAutoAdvancePC
              eEmulateInstructionOptionIgnoreConditions
      
      Modified the EmulateInstruction class to have a few more pure virtuals that
      can help clients understand how many instructions the emulator can handle:
      
              virtual bool
              SupportsEmulatingIntructionsOfType (InstructionType inst_type) = 0;
      
      
      Where instruction types are defined as:
      
      //------------------------------------------------------------------
      /// Instruction types
      //------------------------------------------------------------------    
      typedef enum InstructionType
      {
          eInstructionTypeAny,                // Support for any instructions at all (at least one)
          eInstructionTypePrologueEpilogue,   // All prologue and epilogue instructons that push and pop register values and modify sp/fp
          eInstructionTypePCModifying,        // Any instruction that modifies the program counter/instruction pointer
          eInstructionTypeAll                 // All instructions of any kind
      
      }  InstructionType;
      
      
      This allows use to tell what an emulator can do and also allows us to request
      these abilities when we are finding the plug-in interface.
      
      Added the ability for an EmulateInstruction class to get the register names
      for any registers that are part of the emulation. This helps with being able
      to dump and log effectively.
      
      The UnwindAssembly class now stores the architecture it was created with in
      case it is needed later in the unwinding process.
      
      Added a function that can tell us DWARF register names for ARM that goes
      along with the source/Utility/ARM_DWARF_Registers.h file: 
      
              source/Utility/ARM_DWARF_Registers.c
              
      Took some of plug-ins out of the lldb_private namespace.
      
      llvm-svn: 130189
      2ed751bd
  31. Apr 25, 2011
  32. Apr 05, 2011
    • Caroline Tice's avatar
      · ad379efc
      Caroline Tice authored
      Add the rest of the mechanisms to make ARM instruction emulation usable/possible.
      
      llvm-svn: 128907
      ad379efc
  33. Mar 24, 2011
Loading