[Lldb-commits] [lldb] Fix dap stacktrace perf issue (PR #104874)

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Wed Aug 21 12:43: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");
----------------
clayborg wrote:

I still will want the option to disable this feature if it is coslty and not everyone needs it. But if all non mac platforms report "SBProcess::GetNumExtendedBacktraceTypes() == 0", then this can be a good work around. If we call this on mac, does `SBProcess::GetNumExtendedBacktraceTypes()` return 1 and `SBProcess::GetExtendedBacktraceTypeAtIndex(0)` return `"libdispatch"`? We definitely shouldn't be trying "libdispatch" on any non mac systems.

https://github.com/llvm/llvm-project/pull/104874


More information about the lldb-commits mailing list