Currently when running profile mode on iOS devices, we still attach an LLDB debugger. This impacts performance and can cause greater noise in benchmarks. For example, when switching from Xcode's debugger to using LLDB directly, we saw a regression in time to first frame: #185762. The benchmark should not regress just because of the debugger we use.
Pros of removing the debugger:
Cons of removing the debugger:
- Less complete stack traces on crashes
I propose that if using Xcode 26+, we default to not attach a debugger when using profile mode. In addition, we can introduce a flag --ios-profile-debugger that allows you to opt into having the debugger be attached.
We can also print a guided message in the tool if we detect a crash to use --ios-profile-debugger for more complete stack traces.
Currently when running profile mode on iOS devices, we still attach an LLDB debugger. This impacts performance and can cause greater noise in benchmarks. For example, when switching from Xcode's debugger to using LLDB directly, we saw a regression in time to first frame: #185762. The benchmark should not regress just because of the debugger we use.
Pros of removing the debugger:
Cons of removing the debugger:
I propose that if using Xcode 26+, we default to not attach a debugger when using profile mode. In addition, we can introduce a flag
--ios-profile-debuggerthat allows you to opt into having the debugger be attached.We can also print a guided message in the tool if we detect a crash to use
--ios-profile-debuggerfor more complete stack traces.