[Lldb-commits] [PATCH] D11415: Add jstopinfo support to llgs

Pavel Labath labath at google.com
Thu Jul 30 05:09:02 PDT 2015

Hello Greg, Jim,

after adding jstopinfo support to LLGS, i am still getting a bunch of
register read packets which access the program counter. These are
coming from Thread::SetupForResume(), where we need to check whether a
thread is on a breakpoint before letting it run. I would like to get
rid of those packets (my preliminary tests show I can gain about 10%
stepping speed improvement on my test app with 20 threads). I see two
ways to go about this:
1. send the program counters as a part of the jstopinfo field. I will
need to change the format of the field a bit, because the current
assumption is that you do not include the threads which don't have a
stop reason there, but we need the registers for every thread.
2. cache the registers on the client side. These queries happen after
we have previously done a vCont:s (as a part of ThreadPlanStepOver),
so the client can determine that the other threads have not executed,
and the registers are unchanged. We would still avoid caching the stop
reason, since on OSX this can change even if the thread is not
running, but I hope the registers remain the same.

All in all, the first approach is probably more easier to implement,
but the second one sounds better to me architecturally, and has the
benefit of caching all registers, and not just the PC.

Do you have any thoughts on this?


On 23 July 2015 at 10:10, Pavel Labath <labath at google.com> wrote:
> This revision was automatically updated to reflect the committed changes.
> labath marked 2 inline comments as done.
> Closed by commit rL242997: Add jstopinfo support to llgs (authored by labath).
> Changed prior to commit:
>   http://reviews.llvm.org/D11415?vs=30348&id=30464#toc
> Repository:
>   rL LLVM
> http://reviews.llvm.org/D11415
> Files:
>   lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp
>   lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.cpp
>   lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.h
>   lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp

More information about the lldb-commits mailing list