This revision was automatically updated to reflect the committed changes.
Closed by commit rG97b579d31404: [debugserver] Add one additional sleep before
attaching after waiting (authored by bulbazord).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D144311/new/
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);
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);
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits