[all-commits] [llvm/llvm-project] 5ae493: [LLDB] Add formatters for MSVC STL std::vector (#1...

nerix via All-commits all-commits at lists.llvm.org
Wed Jul 16 02:03:12 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5ae49393957c6b4d47ace7aaf5fc1e0388d3a695
      https://github.com/llvm/llvm-project/commit/5ae49393957c6b4d47ace7aaf5fc1e0388d3a695
  Author: nerix <nerixdev at outlook.de>
  Date:   2025-07-16 (Wed, 16 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/MsvcStl.h
    A lldb/source/Plugins/Language/CPlusPlus/MsvcStlVector.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vbool/TestDataFormatterStdVBool.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vbool/main.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vector/TestDataFormatterStdVector.py

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

This adds synthetic child providers for `std::vector<T>` and
`std::vector<bool>` for MSVC's STL.

The structure of a `std::vector<T>` is relatively similar to libc++'s
implementation that uses `__begin` and `__end`.
`std::vector<bool>` is different. It's a `std::vector<unsigned int>`
wrapper instead of `std::vector<uint8_t>`. This makes the calculation
slightly less simple. I put a comment in the `GetChildAtIndex` to make
this clear.

- [NatVis for
`std::vector<T>`](https://github.com/microsoft/STL/blob/313964b78a8fd5a52e7965e13781f735bcce13c5/stl/debugger/STL.natvis#L1193-L1205)
- [NatVis for
`std::vector<bool>`](https://github.com/microsoft/STL/blob/313964b78a8fd5a52e7965e13781f735bcce13c5/stl/debugger/STL.natvis#L1167-L1179)

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