natvis: Fix std::unordered_[set|multiset|map|multimap] and add basic_string synthetic to dump nul-delimited substrings. The std::unordered* type recently broke, with the debugger reporting: `Unable to find type '__table::__node_pointer' for cast.` I was not able to find a way to restore the functionality while keeping the unified definition; instead this change splits the unordered_*set and unordered_*map definitions which also means it is now reasonable to use LinkedListItems instead. This change also adds support for dumping basic_strings with embedded NUL characters (including highlighting when the string contains them). An example of where this is particularly useful is when dumping HttpResponseHeaders's raw_headers_ member. Change-Id: Ic4101c65bc22bb0227d447ea36546f2fa2481dfb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7001755 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Auto-Submit: Erik Anderson <Erik.Anderson@microsoft.com> Cr-Commit-Position: refs/heads/main@{#1525807}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.