================ @@ -132,6 +132,84 @@ std::vector<std::string> GetStrings(const llvm::json::Object *obj, return strs; } +/// Create a short summary for a container that contains the summary of its +/// first children, so that the user can get a glimpse of its contents at a +/// glance. +static std::optional<std::string> +GetSyntheticSummaryForContainer(lldb::SBValue &v) { + if (v.TypeIsPointerType() || !v.MightHaveChildren()) + return std::nullopt; + /// As this operation can be potentially slow, we limit the total time spent + /// fetching children to a few ms. + const auto max_evaluation_time = std::chrono::milliseconds(10); + /// We don't want to generate a extremely long summary string, so we limit its + /// length. + const size_t max_length = 32; + + auto start = std::chrono::steady_clock::now(); + std::string summary; + llvm::raw_string_ostream os(summary); + os << "{"; + + llvm::StringRef separator = ""; + + for (size_t i = 0, e = v.GetNumChildren(); i < e; ++i) { ---------------- dwblaikie wrote:
Thanks for the context - how's all this compare to other debuggers? (like Visual Studio, for example - what's it show by default for the types?) https://github.com/llvm/llvm-project/pull/65514 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits