[Lldb-commits] [lldb] Fix dap stacktrace perf issue (PR #104874)
Walter Erquinigo via lldb-commits
lldb-commits at lists.llvm.org
Wed Aug 21 13:22:00 PDT 2024
================
@@ -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
More information about the lldb-commits
mailing list