Skip to content
  1. Jun 25, 2015
  2. Jun 24, 2015
    • Ed Maste's avatar
      Reduce FreeBSD log spam · a681ea25
      Ed Maste authored
      The values of four important registers are included in logs for ptrace
      PT_GETREGS. Put all four on the same line for a more compact log. Also
      use the proper 64-bit register names.
      
      llvm-svn: 240581
      a681ea25
    • Enrico Granata's avatar
      Fix an issue where an SBValue could end up capturing a synthetic value and... · 989e213c
      Enrico Granata authored
      Fix an issue where an SBValue could end up capturing a synthetic value and would then be unable to return the non-synthetic version thereof
      
      This patch makes the backing ValueImpl always store the root-most value no matter the "flavor" that is initially passed into it
      
      llvm-svn: 240578
      989e213c
    • Oleksiy Vyalov's avatar
    • Ed Maste's avatar
      Remove SetResumeState from POSIXThread::RefreshStateAfterStop · 0ded6293
      Ed Maste authored
      With the removal of ProcessLinux in r240543 this code is used only on
      FreeBSD. FreeBSD isn't affected by whichever issue originally prompted
      the addition of SetResumeState, so just remove it.
      
      As discussed on the mailing list (and mentioned in a FIXME comment)
      it shouldn't be called there.
      
      llvm-svn: 240550
      0ded6293
    • Ed Maste's avatar
      Remove empty ProcessPOSIX::StopAllThreads · 4a8d32b7
      Ed Maste authored
      The removal of ProcessLinux in r240543 left only an empty
      StopAllThreads (it's not needed on FreeBSD), so just remove it too.
      
      llvm-svn: 240549
      4a8d32b7
    • Ed Maste's avatar
      Remove unused variable · ff666dcb
      Ed Maste authored
      llvm-svn: 240547
      ff666dcb
    • Ewan Crawford's avatar
      Proper handling of QNonStop packet response. · aa7eda7a
      Ewan Crawford authored
      Turn non-stop mode off if reply to QNonStop packet isn't an OK.
      
      llvm-svn: 240546
      aa7eda7a
    • Pavel Labath's avatar
      Remove old local-only linux debugging code · b36f9178
      Pavel Labath authored
      Summary:
      Currently, the local-only path fails about 50% of the tests, which means that: a) nobody is using
      it; and b) the remote debugging path is much more stable. This commit removes the local-only
      linux debugging code (ProcessLinux) and makes remote-loopback the only way to debug local
      applications (the same architecture as OSX). The ProcessPOSIX code is moved to the FreeBSD
      directory, which is now the only user of this class. Hopefully, FreeBSD will soon move to the new
      architecture as well and then this code can be removed completely.
      
      Test Plan: Test suite passes via remote stub.
      
      Reviewers: emaste, vharron, ovyalov, clayborg
      
      Subscribers: tberghammer, emaste, lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D10661
      
      llvm-svn: 240543
      b36f9178
    • Tamas Berghammer's avatar
      Fix location of symbol size calculation in ObjectFileELF · 2480fe06
      Tamas Berghammer authored
      Bug introduced by r240533
      
      llvm-svn: 240537
      2480fe06
    • Tamas Berghammer's avatar
      Improve instruction emulation based stack unwinding on ARM · 44ff9cce
      Tamas Berghammer authored
      * Add and fix the emulation of several instruction.
      * Disable frame pointer usage on Android.
      * Specify return address register for the unwind plan instead of explict
        tracking the value of RA.
      * Replace prologue detection heuristics (unreliable in several cases)
        with a logic to follow the branch instructions and restore the CFI
        value based on them. The target address for a branch should have the
        same CFI as the source address (if they are in the same function).
      * Handle symbols in ELF files where the symbol size is not specified
        with calcualting their size based on the next symbol (already done
        in MachO files).
      * Fix architecture in FuncUnwinders with filling up the inforamtion
        missing from the object file with the architecture of the target.
      * Add code to read register wehn the value is set to "IsSame" as it
        meanse the value of a register in the parent frame is the same as the
        value in the current frame.
      
      Differential revision: http://reviews.llvm.org/D10447
      
      llvm-svn: 240533
      44ff9cce
  3. Jun 23, 2015
    • Greg Clayton's avatar
      Implement the "qSymbol" packet in order to be able to read queue information... · 0b90be1c
      Greg Clayton authored
      Implement the "qSymbol" packet in order to be able to read queue information in debugserver and return the info in the stop reply packets.
      
      A "qSymbol::" is sent when shared libraries have been loaded by hooking into the Process::ModulesDidLoad() function from within ProcessGDBRemote. This function was made virtual so that the ProcessGDBRemote version is called, which then first calls the Process::ModulesDidLoad(), and then it queries for any symbol lookups that the remote GDB server might want to do.
      
      This allows debugserver to request the "dispatch_queue_offsets" symbol so that it can read the queue name, queue kind and queue serial number and include this data as part of the stop reply packet. Previously each thread would have to do 3 memory reads in order to read the queue name.
      
      This is part of reducing the number of packets that are sent between LLDB and the remote GDB server.
      
      <rdar://problem/21494354>
      
      llvm-svn: 240466
      0b90be1c
    • Jim Ingham's avatar
      Fix the handling of the run lock in cases where you needed to run · 60c915e9
      Jim Ingham authored
      a hand-called function from the private state thread.  The problem 
      was that on the way out of the private state thread, we try to drop
      the run lock.  That is appropriate for the main private state thread,
      but not the secondary private state thread.  Only the thread that 
      spawned them can know whether this is an appropriate thing to do or
      not.
      
      <rdar://problem/21375352>
      
      llvm-svn: 240461
      60c915e9
    • Dawn Perchik's avatar
      Add support for displaying the language in the frame-format string. · dc975670
      Dawn Perchik authored
      Enable ${language} to be specified in the frame-format string to see
      the current frame's compile unit language in "frame info".
      
      Test Plan:
      debug a C++ program, run to main, and run the lldb commands:
          settings set frame-format "frame lang=${language}\n"
          frame info
      you should see:
          frame lang=c++
      test case added in:
          ./dotest.py --executable lldb -f SettingsCommandTestCase.test_set_frame_format
      Reviewers: clayborg
      Subscribers: lldb-commits
      Differential Revision: http://reviews.llvm.org/D10561
      
      llvm-svn: 240440
      dc975670
    • Oleksiy Vyalov's avatar
      Mark SBFrame::GetFunctionName and SBFrame::IsInlined as const. · a5d9c1d3
      Oleksiy Vyalov authored
      llvm-svn: 240435
      a5d9c1d3
    • Pavel Labath's avatar
      Fix build breakage after llvm r240426 · a6d0dd74
      Pavel Labath authored
      Test Plan: It builds, tests pass.
      
      Reviewers: tstellarAMD, rafael
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D10660
      
      llvm-svn: 240429
      a6d0dd74
    • Ewan Crawford's avatar
      Add handling of async notify packets · 76df2881
      Ewan Crawford authored
      This patch adds a listener to the AynscThread in ProcessGDBRemote, specifically for dealing with any async notification packets.
      
      From the broadcast our listener receives we can process the notify packet from the event data. A handler function then sets the thread stop info from this packet, and updates lldb by setting the process private state to stopped. Allowing the async thread to go back to sleep and getting the main thread to handle the implications of a state change.
      
      When sending a vCont in nonstop mode we also get a different reply from all-stop mode, an OK response as opposed to a stop reply. So a condition is added to handle this and set the process state without the stop-reply data.
      
      Reviewers: clayborg
      
      Subscribers: lldb-commits, labath, ted, aidan.dodds, deepak2427
      
      Differential Revision: http://reviews.llvm.org/D10544
      
      llvm-svn: 240397
      76df2881
    • Jaydeep Patil's avatar
      [LLDB][MIPS] MIPS32 branch emulation and single-stepping · c60c9452
      Jaydeep Patil authored
          
          SUMMARY:
          This patch implements
            1. Emulation of MIPS32 branch instructions
            2. Enable single-stepping for MIPS32 instructions
            3. Correction in emulation of MIPS64 branch instructions with delay slot
            4. Adjust breakpoint address when breakpoint is hit in a forbidden slot of compact branch instruction
          
          Reviewers: clayborg
          Subscribers: mohit.bhakkad, sagar, bhushan, lldb-commits, emaste, nitesh.jain
          Differential Revision: http://reviews.llvm.org/D10596
      
      llvm-svn: 240373
      c60c9452
    • Chaoren Lin's avatar
      Revert "Reduced packet counts to the remote GDB server where possible." · 7a306080
      Chaoren Lin authored
      This reverts commit 0cc0745ea9c68d7fdcadc9904cee3f13c96dae60.
      
      Due to breakage on Linux build bot:
      
      http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/3436
      
      llvm-svn: 240371
      7a306080
    • Greg Clayton's avatar
      Reduced packet counts to the remote GDB server where possible. · ffb2d44a
      Greg Clayton authored
      We have been working on reducing the packet count that is sent between LLDB and the debugserver on MacOSX and iOS. Our approach to this was to reduce the packets required when debugging multiple threads. We currently make one qThreadStopInfoXXXX call (where XXXX is the thread ID in hex) per thread except the thread that stopped with a stop reply packet. In order to implement multiple thread infos in a single reply, we need to use structured data, which means JSON. The new jThreadsInfo packet will attempt to retrieve all thread infos in a single packet. The data is very similar to the stop reply packets, but packaged in JSON and uses JSON arrays where applicable. The JSON output looks like:
      
      
      [
        { "tid":1580681,
          "metype":6,
          "medata":[2,0],
          "reason":"exception",
          "qaddr":140735118423168,
          "registers": {
            "0":"8000000000000000",
            "1":"0000000000000000",
            "2":"20fabf5fff7f0000",
            "3":"e8f8bf5fff7f0000",
            "4":"0100000000000000",
            "5":"d8f8bf5fff7f0000",
            "6":"b0f8bf5fff7f0000",
            "7":"20f4bf5fff7f0000",
            "8":"8000000000000000",
            "9":"61a8db78a61500db",
            "10":"3200000000000000",
            "11":"4602000000000000",
            "12":"0000000000000000",
            "13":"0000000000000000",
            "14":"0000000000000000",
            "15":"0000000000000000",
            "16":"960b000001000000",
            "17":"0202000000000000",
            "18":"2b00000000000000",
            "19":"0000000000000000",
            "20":"0000000000000000"},
          "memory":[
            {"address":140734799804592,"bytes":"c8f8bf5fff7f0000c9a59e8cff7f0000"},
            {"address":140734799804616,"bytes":"00000000000000000100000000000000"}
          ]
        }
      ]
      
      It contains an array of dicitionaries with all of the key value pairs that are normally in the stop reply packet. Including the expedited registers. Notice that is also contains expedited memory in the "memory" key. Any values in this memory will get included in a new L1 cache in lldb_private::Process where if a memory read request is made and that memory request fits into one of the L1 memory cache blocks, it will use that memory data. If a memory request fails in the L1 cache, it will fall back to the L2 cache which is the same block sized caching we were using before these changes. This allows a process to expedite memory that you are likely to use and it reduces packet count. On MacOSX with debugserver, we expedite the frame pointer backchain for a thread (up to 256 entries) by reading 2 pointers worth of bytes at the frame pointer (for the previous FP and PC), and follow the backchain. Most backtraces on MacOSX and iOS now don't require us to read any memory!
      
      We will try these packets out and if successful, we should port these to lldb-server in the near future. 
      
      <rdar://problem/21494354>
      
      llvm-svn: 240354
      ffb2d44a
    • Greg Clayton's avatar
      Fix a crasher on the MacOSX test suite for Objective C. · 4b995262
      Greg Clayton authored
      llvm-svn: 240351
      4b995262
  4. Jun 22, 2015
    • Greg Clayton's avatar
      Cleanup the code a bit to make it more readable. · 7d1483f5
      Greg Clayton authored
      Add some if/then to avoid calling a function to get dynamic/synthetic types if we know we aren't going to need to call it.
      
      Avoid calling a function that returns a shared pointer twice: once for testing it and once for assigning it (even though that shared pointer is cached inside the value object), it just makes the code a bit clearer.
      
      llvm-svn: 240299
      7d1483f5
    • Jaydeep Patil's avatar
      Test Commit · 30952b20
      Jaydeep Patil authored
      llvm-svn: 240280
      30952b20
  5. Jun 19, 2015
  6. Jun 18, 2015
Loading