Skip to content
  1. Jan 25, 2013
    • Greg Clayton's avatar
      <rdar://problem/13069948> · c7bece56
      Greg Clayton authored
      Major fixed to allow reading files that are over 4GB. The main problems were that the DataExtractor was using 32 bit offsets as a data cursor, and since we mmap all of our object files we could run into cases where if we had a very large core file that was over 4GB, we were running into the 4GB boundary.
      
      So I defined a new "lldb::offset_t" which should be used for all file offsets.
      
      After making this change, I enabled warnings for data loss and for enexpected implicit conversions temporarily and found a ton of things that I fixed.
      
      Any functions that take an index internally, should use "size_t" for any indexes and also should return "size_t" for any sizes of collections.
      
      llvm-svn: 173463
      c7bece56
    • Jason Molenda's avatar
      <rdar://problem/13072285> · a71919c9
      Jason Molenda authored
      Change the GDBRemoteRegisterContext::AddRegister function to take
      its RegisterInfo argument by value instead of using a reference -
      it will modify the object and modifying the contents of the 
      g_register_infos table in GDBRemoteRegisterContext.cpp can cause a
      crash the next time we step through it.
      
      llvm-svn: 173406
      a71919c9
    • Daniel Malea's avatar
      Update test scripts and Makefiles to allow testing with GCC: · 2745d846
      Daniel Malea authored
      - introduce new variable ARCHFLAG in make/Makefile.rules to switch between "-arch" on Mac and "-m" everywhere else
      - update testcase makefiles to use LD_EXTRAS instead of LDFLAGS (the former interacts with Makefile.rules badly)
      - special treatment for gcc 4.6: replace "-std=c++11" with "-std=c++0x" as the former is not handled correctly
      - remove hardcoded "-arch" from test Makefile
      
      This patch should not have any effect on lldb on Mac OS X.
      
      llvm-svn: 173402
      2745d846
    • Daniel Malea's avatar
      Mark test cases affected by PR 15036 (GCC-generated DWARF causes parser crash) · be230793
      Daniel Malea authored
      - Add new decorator "@skipIfGcc" to lldbtest.py
      
      llvm-svn: 173394
      be230793
    • Jim Ingham's avatar
      Don't listen for EXC_RESOURCE exceptions, those should really be handled by the system · d30df9e2
      Jim Ingham authored
      handler.  Also put in string translations for a couple of exceptions we were missing.
      
      llvm-svn: 173390
      d30df9e2
  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