Skip to content
  1. Jan 25, 2013
  2. Jan 24, 2013
  3. Jan 23, 2013
    • Jason Molenda's avatar
      Remove a compile time warning in RNBRemote::HandlePacket_qProcessInfo · 761263bf
      Jason Molenda authored
      for non-x86 builds.
      
      llvm-svn: 173226
      761263bf
    • Jason Molenda's avatar
      Change the container-regs kv pair in the qRegsiterInfo · fa85ca5f
      Jason Molenda authored
      reply to be hex encoded, not decimal.
      
      Fix the whitespace in the container-regs/invalidate-regs
      documentation, fix one ambiguous hex/decimal number in an
      example.
      
      llvm-svn: 173225
      fa85ca5f
    • Enrico Granata's avatar
      <rdar://problem/12711206> · f7b1a34e
      Enrico Granata authored
      Extending ValueObjectDynamicValue so that it stores a TypeAndOrName instead of a TypeSP.
      This change allows us to reflect the notion that a ValueObject can have a dynamic type for which we have no debug information.
      Previously, we would coalesce that to the static type of the object, potentially losing relevant information or even getting it wrong.
      This fix ensures we can correctly report the class name for Cocoa objects whose types are hidden classes that we know nothing about (e.g. __NSArrayI for immutable arrays).
      As a side effect, our --show-types argument to frame variable no longer needs to append custom dynamic type information.
      
      llvm-svn: 173216
      f7b1a34e
  4. Jan 22, 2013
  5. Jan 21, 2013
    • Greg Clayton's avatar
      <rdar://problem/13020634> · ce1ffcf8
      Greg Clayton authored
      Fixed the 32, 16, and 8 bit pseudo regs for x86_64 (real reg of "rax" which subvalues "eax", "ax", etc...) to correctly get updated when stepping. Also fixed it so actual registers can specify what other registers must be invalidated when a register is modified. Previously, only pseudo registers could invalidate other registers.
      
      Modified the LLDB qRegisterInfo extension to the GDB remote interface to support specifying the containing registers with the new "container-regs" key whose value is a comma separated list of register numbers. Also added a "invalidate-regs" key whose value is also a comma separated list of register numbers. 
      
      Removed the hack GDBRemoteDynamicRegisterInfo::Addx86_64ConvenienceRegisters() function and modified "debugserver" to specify the registers correctly using the new "container-regs" and "invalidate-regs" keys.
      
      llvm-svn: 173096
      ce1ffcf8
    • Enrico Granata's avatar
      <rdar://problem/12437929> · 6b4ddc65
      Enrico Granata authored
      Providing a special mode of operator for "memory read -f c-str" which actually works in most common cases
      Where the old behavior would provide:
      (lldb) mem read --format s `foo`
      0x100000f5d: NULL
      
      Now we do:
      (lldb) mem read --format s `foo`
      0x100000f5d: "hello world"
      
      You can also specify a count and that many strings will be showed starting at the initial address:
      (lldb) mem read -c 2 -f c-str `foo`
      0x100000f1d: "hello world"
      0x100000f29: "short"
      
      llvm-svn: 173076
      6b4ddc65
  6. Jan 19, 2013
    • Jason Molenda's avatar
      <rdar://problem/12350715> · 4c781fd7
      Jason Molenda authored
      Modify UnwindLLDB::SearchForSavedLocationForRegister so if the register
      save locations for a register mid-stack is in another register (or in the
      same register, indicating the reg wasn't modified in this frame), don't
      return that as a found location.  Keep iterating down the array of frames
      until a concrete location/value for the register is found, or until we
      get to frame 0 where the reg value can be used as-is.
      
      If lldb was trying to backtrace a program that blew out its stack via
      recursion and the unwind instructions had some kind of 
      this-reg-is-saved-in-that-reg instruction, lldb would revert to doing 
      a recursive search for a concrete value and blow out its own stack.
      
      llvm-svn: 172887
      4c781fd7
    • Sean Callanan's avatar
      Extended LLDB to handle blocks capturing 'self' · a2868d4c
      Sean Callanan authored
      in an Objective-C class method.  Before, errors
      of the form
      
      error: cannot find interface declaration for '$__lldb_objc_class'
      
      would appear when running any expression when
      the current frame is a block that captures 'self'
      from an Objective-C class method.
      
      <rdar://problem/12905561>
      
      llvm-svn: 172880
      a2868d4c
    • Greg Clayton's avatar
      <rdar://problem/13011717> · 746a28bb
      Greg Clayton authored
      Fixed a compilation error that occurs when "lldb.macosx.heap" is imported and "ptr_refs" is used.
      
      llvm-svn: 172876
      746a28bb
    • Greg Clayton's avatar
      <rdar://problem/13010007> · a4d8747d
      Greg Clayton authored
      Added the ability for OS plug-ins to lazily populate the thread this. The python OS plug-in classes can now implement the following method:
      
      class OperatingSystemPlugin:
        def create_thread(self, tid, context):
          # Return a dictionary for a new thread to create it on demand
      
      This will add a new thread to the thread list if it doesn't already exist. The example code in lldb/examples/python/operating_system.py has been updated to show how this call us used.
      
      Cleaned up the code in PythonDataObjects.cpp/h:
      - renamed all classes that started with PythonData* to be Python*. 
      - renamed PythonArray to PythonList. Cleaned up the code to use inheritance where
      - Centralized the code that does ref counting in the PythonObject class to a single function.
      - Made the "bool PythonObject::Reset(PyObject *)" function be virtual so each subclass can correctly check to ensure a PyObject is of the right type before adopting the object.
      - Cleaned up all APIs and added new constructors for the Python* classes to they can all construct form:
      	- PyObject *
      	- const PythonObject &
      	- const lldb::ScriptInterpreterObjectSP &
      
      Cleaned up code in ScriptInterpreterPython:
      - Made calling python functions safer by templatizing the production of value formats. Python specifies the value formats based on built in C types (long, long long, etc), and code often uses typedefs for uint32_t, uint64_t, etc when passing arguments down to python. We will now always produce correct value formats as the templatized code will "do the right thing" all the time.
      - Fixed issues with the ScriptInterpreterPython::Locker where entering the session and leaving the session had a bunch of issues that could cause the "lldb" module globals lldb.debugger, lldb.target, lldb.process, lldb.thread, and lldb.frame to not be initialized.
      
      llvm-svn: 172873
      a4d8747d
    • Greg Clayton's avatar
      Disassemble the vAttach packet. · e0d53237
      Greg Clayton authored
      llvm-svn: 172871
      e0d53237
    • Han Ming Ong's avatar
      <rdar://problem/12976277> · 4b6459f3
      Han Ming Ong authored
      Swap in index ids for thread ids in GDBRemoteCommunicationClient. Besides dealing with the async logic, I have to take care of the situation when the inferior paused as well.
      
      llvm-svn: 172869
      4b6459f3
    • Jason Molenda's avatar
      Add code to retreive the mach port # for each thread in the inferior application's · 2affc1ea
      Jason Molenda authored
      mach port namespace in addition to the mach port # in examine-threads' own port
      namespace, and print it (when -v is used).
      
      llvm-svn: 172867
      2affc1ea
  7. Jan 18, 2013
  8. Jan 17, 2013
  9. Jan 16, 2013
Loading