[all-commits] [llvm/llvm-project] def7bb: [LLDB] Add formatters for MSVC STL std::shared_ptr...

nerix via All-commits all-commits at lists.llvm.org
Fri Jul 11 01:37:33 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: def7bbbe17c6d0302a0cccf67355e36c45fcb224
      https://github.com/llvm/llvm-project/commit/def7bbbe17c6d0302a0cccf67355e36c45fcb224
  Author: nerix <nerixdev at outlook.de>
  Date:   2025-07-11 (Fri, 11 Jul 2025)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    M lldb/source/Plugins/Language/CPlusPlus/Generic.cpp
    M lldb/source/Plugins/Language/CPlusPlus/MsvcStl.h
    A lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/shared_ptr/TestDataFormatterStdSharedPtr.py

  Log Message:
  -----------
  [LLDB] Add formatters for MSVC STL std::shared_ptr (#147575)

This PR adds formatters for `std::shared_ptr` and `std::weak_ptr`. They
are similar to the ones from libc++ and libstdc++.
[Section from MSVC STL
NatVis](https://github.com/microsoft/STL/blob/313964b78a8fd5a52e7965e13781f735bcce13c5/stl/debugger/STL.natvis#L512-L578).

To support debugging with PDB debug info, I had to add an early exit in
`GetDesugaredSmartPointerValue`, because with PDB, LLDB doesn't know
about template types. This isn't an issue here, since the typedef type
is already resolved there, so no casting is needed.

The tests don't check for PDB - maybe this should be changed? I don't
know a good way to do this. PDB has the downside that it resolves
typedefs. Here in particular, the test for `element_type` would need to
be replaced with `User` and `std::string` with
`std::basic_string<char,std::char_traits<char>,std::allocator<char> >`.

Towards #24834.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list