[Lldb-commits] [PATCH] D144311: [debugserver] Add one additional sleep before attaching after waiting
Alex Langford via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Feb 17 17:31:14 PST 2023
bulbazord created this revision.
bulbazord added a reviewer: jasonmolenda.
Herald added a project: All.
bulbazord requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.
It's possible for debugserver to attach to a process during the handoff
between /usr/lib/dyld and the dyld in the shared cache. When that
happens, we may end up in a state where there is no dyld in the process
and our debugging session is doomed. To make that scenario a lot less
likely, we can insert a sleep right before attaching after waiting to
find the right pid.
rdar://105513180
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D144311
Files:
lldb/tools/debugserver/source/DNB.cpp
Index: lldb/tools/debugserver/source/DNB.cpp
===================================================================
--- lldb/tools/debugserver/source/DNB.cpp
+++ lldb/tools/debugserver/source/DNB.cpp
@@ -793,6 +793,14 @@
if (waitfor_pid != INVALID_NUB_PROCESS) {
DNBLogThreadedIf(LOG_PROCESS, "Attaching to %s with pid %i...\n",
waitfor_process_name, waitfor_pid);
+ // In some cases, we attempt to attach during the transition from
+ // /usr/lib/dyld to the dyld in the shared cache. If that happens, we may
+ // end up in a state where there is no dyld in the process and from there
+ // the debugging session is doomed.
+ // In an attempt to make this scenario much less likely, we sleep
+ // for an additional `waitfor_interval` number of microseconds before
+ // attaching.
+ ::usleep(waitfor_interval);
waitfor_pid = DNBProcessAttach(waitfor_pid, timeout_abstime,
ctx->GetIgnoredExceptions(), err_str,
err_len);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D144311.498533.patch
Type: text/x-patch
Size: 1047 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20230218/81ffd9d5/attachment.bin>
More information about the lldb-commits
mailing list