================
@@ -3091,17 +3093,20 @@ void request_stackTrace(const llvm::json::Object 
&request) {
     // This will always return an invalid thread when
     // libBacktraceRecording.dylib is not loaded or if there is no extended
     // backtrace.
-    lldb::SBThread queue_backtrace_thread =
-        thread.GetExtendedBacktraceThread("libdispatch");
+    lldb::SBThread queue_backtrace_thread;
+    if (g_dap.enable_display_extended_backtrace)
+      queue_backtrace_thread = 
thread.GetExtendedBacktraceThread("libdispatch");
----------------
walter-erquinigo wrote:

According the Jeffrey's profiling, the penalty is up to 1 second in certain 
targets. I think that's a very reasonable wait time if that can improve the 
debugger experience, as long as it happens once per user action only in the 
cases where there's an extended backtrace via `GetNumExtendedBacktraceTypes`.
IIRC, not all stack traces are sent at once to the IDE. Only one stack trace 
gets sent and then, the user needs to expand individual threads to see more 
stack traces, in which case 1 second seems reasonable under the circumstances 
mentioned above.

https://github.com/llvm/llvm-project/pull/104874
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to