[Lldb-commits] [lldb] [lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (PR #65687)

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Fri Sep 8 13:03:31 PDT 2023


================
@@ -40,7 +40,8 @@ VSCode::VSCode()
            {"swift_catch", "Swift Catch", lldb::eLanguageTypeSwift},
            {"swift_throw", "Swift Throw", lldb::eLanguageTypeSwift}}),
       focus_tid(LLDB_INVALID_THREAD_ID), sent_terminated_event(false),
-      stop_at_entry(false), is_attach(false),
+      stop_at_entry(false), is_attach(false), show_descriptive_summaries(false),
+      show_raw_child_for_synthetics(false),
----------------
clayborg wrote:

No, we want these off by default. I don't want to see a "[raw]" entry at the end of all synthetic variables each time I debug. Also the descriptive summaries are way too expensive to enable as they will cause all types to always be completed. Say you have 100 variables in your variable view, if you don't turn them down in the variable view, we never need to complete the types for these entries, but with this change enabled, all variable types (and if each type is a class, all subclasses, and all ivars from the current and subclasses will be completed) will always be completed even if they aren't turned down. This was the reason we originally made the "SBValue::MightHaveChildren()" (it doesn't complete a type, it just says "if you are a struct, then you might have children" and then we can display the disclosure triange in the UI without completing the type) as objective C debugging variables were always class pointers that didn't need to be completed. We saw a huge performance gain when we didn't complete a type and displaying variables in Xcode many years ago, so we know this is an issue.

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


More information about the lldb-commits mailing list