Skip to content
  1. Jul 22, 2015
  2. Jul 21, 2015
    • Pavel Labath's avatar
      [NativeProcessLinux] Integrate MainLoop · 19cbe96a
      Pavel Labath authored
      Summary:
      This commit integrates MainLoop into NativeProcessLinux. By registering a SIGCHLD handler with
      the llgs main loop, we can get rid of the special monitor thread in NPL, which saves as a lot of
      thread ping-pong when responding to client requests (e.g. qThreadInfo processing time has been
      reduced by about 40%). It also makes the code simpler, IMHO.
      
      Reviewers: ovyalov, clayborg, tberghammer, chaoren
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D11150
      
      This is a resubmission of r242305 after it was reverted due to bad interactions with the stdio
      thread.
      
      llvm-svn: 242783
      19cbe96a
    • Pavel Labath's avatar
      [LLGS] Get rid of the stdio forwarding thread · c7749c3a
      Pavel Labath authored
      Summary:
      This commit removes the stdio forwarding thread in lldb-server in favor of a MainLoop callback.
      As in some situations we need to forcibly flush the stream ( => Read() is called from multiple
      places) and we still have multiple threads, I have had to additionally protect the communication
      instance with a mutex.
      
      Reviewers: ovyalov, tberghammer
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D11296
      
      llvm-svn: 242782
      c7749c3a
    • Pavel Labath's avatar
      Revert "Add Pipe::WriteWithTimeout method" · 7c52f853
      Pavel Labath authored
      I have observed an increased flakyness in the buildbots. I suspect something was relying on the
      fact that Pipe::Write had an implicit timeout of 1s, which this commit has removed. Reverting
      while I investigate.
      
      llvm-svn: 242767
      7c52f853
    • Pavel Labath's avatar
      Add Pipe::WriteWithTimeout method · 9f0701f8
      Pavel Labath authored
      Summary:
      This commit adds a WriteWithTimeout method to time Pipe class, analogous to the existing
      ReadWithTimeout(). It also changes the meaning of passing zero as a timeout value. Previously,
      zero was used as an infinite timeout value. Now, the meaning of zero timeout to return the data
      avaiable without sleeping (basically, a non-blocking operation). This makes the behaviour of Pipe
      consistent with the Communication/Connection classes. For blocking operatios with infinite
      timeout, I introduce a special constant for this purpose.
      
      Reviewers: ovyalov, zturner
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D11358
      
      llvm-svn: 242764
      9f0701f8
    • Oleksiy Vyalov's avatar
    • Oleksiy Vyalov's avatar
      8a578bf5
    • Enrico Granata's avatar
      The session dictionary attached to a Python interpeter holds variables the... · fbecf1ab
      Enrico Granata authored
      The session dictionary attached to a Python interpeter holds variables the user creates in the script interpreter
      This can include objects that have complex state and need to be torn down intelligently (e.g. our SB* objects)
      
      This will fail if the Python interpreter does not hold a valid thread state. So, acquire one, delete the session dictionary, and then let go of it on destruction
      
      This fixes rdar://20960843
      
      llvm-svn: 242745
      fbecf1ab
    • Greg Clayton's avatar
      Correctly get the arguments and environment, even for processes that have a... · 1f982c2d
      Greg Clayton authored
      Correctly get the arguments and environment, even for processes that have a large amount or arguments and/or environment variables.
      
      We previously passed in a 8192 byte buffer but this wasn't large enough. We now calculate the size we need and then add 128 to it and get the environment. If we pass exactly the number of bytes it says is needs, the sysctl() returns junk. Adding 1 seemed to do the trick, but to err on the side of caution, I added a few bytes more.
      
      <rdar://problem/21883842>
      
      llvm-svn: 242729
      1f982c2d
  3. Jul 20, 2015
  4. Jul 18, 2015
    • Greg Clayton's avatar
      More packet performance improvements. · 2e309076
      Greg Clayton authored
      Changed the "jthreads" key/value in the stop reply packets to be "jstopinfo". This JSON only contains threads with valid stop reasons and allows us not to have to ask about other threads via qThreadStopInfo when we are stepping. The "jstopinfo" only gets sent if there are more than one thread since the stop reply packet contains all the info needed for a single thread.
      
      Added a Process::WillPublicStop() in case process subclasses want to do any extra gathering for public stops. For ProcessGDBRemote, we end up sending a jThreadsInfo packet to gather all expedited registers, expedited memory and MacOSX queue information. We only do this for public stops to minimize the packets we send when we have multiple private stops. Multiple private stops happen when a source level single step, step into or step out run the process multiple times while implementing the stepping, and none of these private stops make it out to the UI via notifications because they are private stops. 
      
      llvm-svn: 242593
      2e309076
    • Enrico Granata's avatar
  5. Jul 17, 2015
  6. Jul 16, 2015
  7. Jul 15, 2015
    • Chaoren Lin's avatar
      Use accept instead of accept4 for Android. · e271658e
      Chaoren Lin authored
      Summary:
      The accept4 syscall is missing on older ARM Android kernels, and the accept()
      call is implemented with the accept4 syscall, so we'll need to call the accept
      syscall directly.
      
      Reviewers: vharron, tberghammer, labath
      
      Subscribers: ovyalov, chaoren, labath, tberghammer, aemerson, lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D10887
      
      llvm-svn: 242319
      e271658e
    • Pavel Labath's avatar
      [NativeProcessLinux] Integrate MainLoop · 827965c3
      Pavel Labath authored
      Summary:
      This commit integrates MainLoop into NativeProcessLinux. By registering a SIGCHLD handler with
      the llgs main loop, we can get rid of the special monitor thread in NPL, which saves as a lot of
      thread ping-pong when responding to client requests (e.g. qThreadInfo processing time has been
      reduced by about 40%). It also makes the code simpler, IMHO.
      
      Reviewers: ovyalov, clayborg, tberghammer, chaoren
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D11150
      
      llvm-svn: 242305
      827965c3
Loading