Skip to content
  1. Jun 14, 2011
    • Peter Collingbourne's avatar
      Generalise pattern for matching IsValid signature · 059640b5
      Peter Collingbourne authored
      Previously the IsValid pattern matched only function signatures of
      the form:
          def IsValid(*args): ...
      
      However under SWIG 1.3.40 on Linux the signature reads:
          def IsValid(self): ...
      
      The new pattern matches both signature types by matching only up to
      the left paren.
      
      llvm-svn: 132968
      059640b5
  2. Jun 10, 2011
  3. Jun 03, 2011
  4. Jun 01, 2011
  5. May 27, 2011
  6. May 25, 2011
  7. May 24, 2011
  8. May 23, 2011
    • Sean Callanan's avatar
      This commit integrates support for the LLVM MCJIT · 79763a42
      Sean Callanan authored
      into the mainline LLDB codebase.  MCJIT introduces
      API improvements and better architectural support.
      
      This commit adds a new subsystem, the
      ProcessDataAllocator, which is responsible for
      performing static data allocations on behalf of the
      IR transformer.  MCJIT currently does not support
      the relocations required to store the constant pool
      in the same allocation as the function body, so we
      allocate a heap region separately and redirect
      static data references from the expression to that
      heap region in a new IR modification pass.
      
      This patch also fixes bugs in the IR
      transformations that were exposed by the transition
      to the MCJIT.  Finally, the patch also pulls in a
      more recent revision of LLVM so that the MCJIT is
      available for use.
      
      llvm-svn: 131923
      79763a42
  9. May 20, 2011
    • Greg Clayton's avatar
      Fixed an issue in GDBRemoteCommunicationClient where we weren't listening to · 5fe15d2d
      Greg Clayton authored
      the "payload_length" argument for the "payload" packet data. This meant we 
      could end up sending random extra data with a packet depending on how the 
      packet was constructed.
      
      Fixed GDBRemoteRegisterContext to properly save and restore all registers. 
      Previous fixes had been added to work around the "payload_length" issues fixed
      above and aren't needed anymore.
      
      Fix logging in GDBRemoteCommunication to make sure we log the correct packet
      data being sent by using the packet length when dumping the packet contents.
      
      Added register definitions for 'arm-lldb' in the "disasm-gdb-remote.pl" script
      so if you have a register dump from the GDB remote that doesn't include the
      qRegisterInfo packets, you can manually tell the script which registers are
      which.
      
      llvm-svn: 131715
      5fe15d2d
    • Greg Clayton's avatar
      Added a perl script to disassemble, into human readable form, the GDB remote · e51dc6f3
      Greg Clayton authored
      packet output from "log enable gdb-remote packets". This should help people
      track down and see what is going wrong more easily when you have log output
      that includes GDB remote packets.
      
      llvm-svn: 131713
      e51dc6f3
  10. May 18, 2011
  11. May 16, 2011
  12. May 02, 2011
  13. Apr 29, 2011
  14. Apr 28, 2011
    • Johnny Chen's avatar
      Move the iteration protocol of lldb objects to the auto-generated lldb Python module. · fbc0d271
      Johnny Chen authored
      This is so that the objects which support the iteration protocol are immediately obvious
      from looking at the lldb.py file.
      
      SBTarget supports two types of iterations: module and breakpoint.  For an SBTarget instance,
      you will need to issue either:
      
          for m in target.module_iter()
      
      or
      
          for b in target.breakpoint_iter()
      
      For other single iteration protocol objects, just use, for example:
      
          for thread in process:
              ID = thread.GetThreadID()
              for frame in thread:
                  frame.Disassemble()
                  ....
      
      llvm-svn: 130442
      fbc0d271
  15. Apr 25, 2011
    • Johnny Chen's avatar
      Make SBBreakpointLocation::GetDescription() API to be consistent with SBTarget, · fc87e2dd
      Johnny Chen authored
      i.e., with 'SBStream &description' first, followed by 'DescriptionLevel level'.
      
      Modify lldbutil.py so that get_description() for a target or breakpoint location
      can just take the lldb object itself without specifying an option to mean option
      lldb.eDescriptionLevelBrief.  Modify TestTargetAPI.py to exercise this logic path.
      
      llvm-svn: 130147
      fc87e2dd
  16. Apr 22, 2011
    • Greg Clayton's avatar
      Did some work on the "register read" command to only show the first register · 385aa28c
      Greg Clayton authored
      set by default when dumping registers. If you want to see all of the register
      sets you can use the "--all" option:
      
      (lldb) register read --all
      
      If you want to just see some register sets, you can currently specify them
      by index:
      
      (lldb) register read --set 0 --set 2
      
      We need to get shorter register set names soon so we can specify the register
      sets by name without having to type too much. I will make this change soon.
      
      You can also have any integer encoded registers resolve the address values
      back to any code or data from the object files using the "--lookup" option.
      Below is sample output when stopped in the libc function "puts" with some
      const strings in registers:
      
      Process 8973 stopped
      * thread #1: tid = 0x2c03, 0x00007fff828fa30f libSystem.B.dylib`puts + 1, stop reason = instruction step into
        frame #0: 0x00007fff828fa30f libSystem.B.dylib`puts + 1
      (lldb) register read --lookup 
      General Purpose Registers:
        rax          = 0x0000000100000e98  "----------------------------------------------------------------------"
        rbx          = 0x0000000000000000
        rcx          = 0x0000000000000001  
        rdx          = 0x0000000000000000
        rdi          = 0x0000000100000e98  "----------------------------------------------------------------------"
        rsi          = 0x0000000100800000
        rbp          = 0x00007fff5fbff710
        rsp          = 0x00007fff5fbff280
        r8           = 0x0000000000000040  
        r9           = 0x0000000000000000
        r10          = 0x0000000000000000
        r11          = 0x0000000000000246  
        r12          = 0x0000000000000000
        r13          = 0x0000000000000000
        r14          = 0x0000000000000000
        r15          = 0x0000000000000000
        rip          = 0x00007fff828fa30f  libSystem.B.dylib`puts + 1
        rflags       = 0x0000000000000246  
        cs           = 0x0000000000000027  
        fs           = 0x0000000000000000
        gs           = 0x0000000000000000
      
      As we can see, we see two constant strings and the PC (register "rip") is 
      showing the code it resolves to.
      
      I fixed the register "--format" option to work as expected.
      
      Added a setting to disable skipping the function prologue when setting 
      breakpoints as a target settings variable:
      
      (lldb) settings set target.skip-prologue false
      
      Updated the user settings controller boolean value handler funciton to be able
      to take the default value so it can correctly respond to the eVarSetOperationClear
      operation.
      
      Did some usability work on the OptionValue classes.
      
      Fixed the "image lookup" command to correctly respond to the "--verbose" 
      option and display the detailed symbol context information when looking up
      line table entries and functions by name. This previously was only working
      for address lookups.
      
      llvm-svn: 129977
      385aa28c
  17. Apr 14, 2011
  18. Apr 08, 2011
    • Greg Clayton's avatar
      Modified the ArchSpec to take an optional "Platform *" when setting the triple. · eb0103f2
      Greg Clayton authored
      This allows you to have a platform selected, then specify a triple using
      "i386" and have the remaining triple items (vendor, os, and environment) set
      automatically.
      
      Many interpreter commands take the "--arch" option to specify an architecture
      triple, so now the command options needed to be able to get to the current
      platform, so the Options class now take a reference to the interpreter on
      construction.
      
      Modified the build LLVM building in the Xcode project to use the new
      Xcode project level user definitions:
      
      LLVM_BUILD_DIR - a path to the llvm build directory
      LLVM_SOURCE_DIR - a path to the llvm sources for the llvm that will be used to build lldb
      LLVM_CONFIGURATION - the configuration that lldb is built for (Release, 
      Release+Asserts, Debug, Debug+Asserts).
      
      I also changed the LLVM build to not check if "lldb/llvm" is a symlink and
      then assume it is a real llvm build directory versus the unzipped llvm.zip
      package, so now you can actually have a "lldb/llvm" directory in your lldb
      sources.
      
      llvm-svn: 129112
      eb0103f2
  19. Mar 26, 2011
  20. Mar 24, 2011
  21. Mar 23, 2011
  22. Mar 22, 2011
    • Greg Clayton's avatar
      Abtracted the innards of lldb-core away from the SB interface. There was some · fc36f791
      Greg Clayton authored
      overlap in the SWIG integration which has now been fixed by introducing
      callbacks for initializing SWIG for each language (python only right now).
      There was also a breakpoint command callback that called into SWIG which has
      been abtracted into a callback to avoid cross over as well.
      
      Added a new binary: lldb-platform
      
      This will be the start of the remote platform that will use as much of the 
      Host functionality to do its job so it should just work on all platforms.
      It is pretty hollowed out for now, but soon it will implement a platform
      using the GDB remote packets as the transport.
      
      llvm-svn: 128053
      fc36f791
  23. Mar 15, 2011
  24. Mar 09, 2011
  25. Mar 07, 2011
    • Johnny Chen's avatar
      Add TestThreadAPI.py file to house the Python SBThread API test cases. · 2f6f7ba8
      Johnny Chen authored
      Currently it has only test cases for SBThread.GetStopDescription() API.
      
      Also modified lldb.swig to add typemap for (char *dst, size_t dst_len)
      which occurs for SBThread::GetStopDescription() C++ API.  For Python
      scripting:
      
          # Due to the typemap magic (see lldb.swig), we pass in an (int)length to GetStopDescription
          # and expect to get a Python string as the result object!
          # The 100 is just an arbitrary number specifying the buffer size.
          stop_description = thread.GetStopDescription(100)
      
      llvm-svn: 127173
      2f6f7ba8
  26. Mar 01, 2011
  27. Jan 27, 2011
Loading