[Lldb-commits] [lldb] Fix dap stacktrace perf issue (PR #104874)
John Harrison via lldb-commits
lldb-commits at lists.llvm.org
Wed Aug 21 16:52:21 PDT 2024
================
@@ -3111,17 +3115,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");
if (queue_backtrace_thread.IsValid()) {
// One extra frame as a label to mark the enqueued thread.
totalFrames += queue_backtrace_thread.GetNumFrames() + 1;
}
// This will always return an invalid thread when there is no exception in
// the current thread.
- lldb::SBThread exception_backtrace_thread =
- thread.GetCurrentExceptionBacktrace();
+ lldb::SBThread exception_backtrace_thread;
+ if (g_dap.enable_display_extended_backtrace)
+ exception_backtrace_thread = thread.GetCurrentExceptionBacktrace();
----------------
ashgti wrote:
Maybe we should remove this from the stack trace and add this info to the `exceptionInfo` request (https://microsoft.github.io/debug-adapter-protocol/specification#Requests_ExceptionInfo) there is a field for the stack trace in the exception details (https://microsoft.github.io/debug-adapter-protocol/specification#Types_ExceptionDetails).
https://github.com/llvm/llvm-project/pull/104874
More information about the lldb-commits
mailing list