aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
diff options
context:
space:
mode:
authornerix <nerixdev@outlook.de>2025-07-22 13:34:26 +0200
committerGitHub <noreply@github.com>2025-07-22 12:34:26 +0100
commitf78c4ce55bc4c47625d0e780f38522938920e329 (patch)
tree6a76bb05781b12b72357f7ec1c588138927c8842 /lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
parent7d9f913bb4164b8aaecfc17accebd44044592115 (diff)
downloadllvm-f78c4ce55bc4c47625d0e780f38522938920e329.zip
llvm-f78c4ce55bc4c47625d0e780f38522938920e329.tar.gz
llvm-f78c4ce55bc4c47625d0e780f38522938920e329.tar.bz2
[LLDB] Add formatters for MSVC STL std::atomic (#149801)
Adds synthetic children and a summary provider for `std::atomic` on MSVC's STL. This currently only supports DWARF because it relies on the template argument. Once there are PDB tests, this will probably use the return type of some method like `value()` because template types aren't available there. Towards #24834.
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp')
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
index 481fe61..1a101ce 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
@@ -1780,6 +1780,9 @@ static void LoadMsvcStlFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
.SetDontShowValue(false)
.SetShowMembersOneLiner(false)
.SetHideItemNames(false);
+ SyntheticChildren::Flags stl_synth_flags;
+ stl_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences(
+ false);
using StringElementType = StringPrinter::StringElementType;
@@ -1801,6 +1804,16 @@ static void LoadMsvcStlFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
stl_summary_flags,
MsvcStlStringSummaryProvider<StringElementType::UTF32>,
"MSVC STL std::u32string summary provider"));
+
+ stl_summary_flags.SetDontShowChildren(false);
+
+ AddCXXSynthetic(cpp_category_sp, MsvcStlAtomicSyntheticFrontEndCreator,
+ "MSVC STL std::atomic synthetic children",
+ "^std::atomic<.+>$", stl_synth_flags, true);
+
+ AddCXXSummary(cpp_category_sp, MsvcStlAtomicSummaryProvider,
+ "MSVC STL std::atomic summary provider", "^std::atomic<.+>$",
+ stl_summary_flags, true);
}
static void LoadSystemFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {