Rozwiązanie: https://github.com/davenger/libcxx-pretty-printers
(fork ze wsparciem dla clang 15)
Nie potrafię zmusić VSCode aby w podpowiedziach po umieszczeniu kursora myszy nad zmienna wyświetli się wartość std::string w w wersji dla ludzi
int main(int argc, char *argv[])
{
std::string koza{"koza"};
spdlog::info("{}",koza);
konfiguracja GDB
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": false
},
polecenie w konsoli GDB p koza (print koza)
-exec p koza
$2 = {static __endian_factor = 2, __r_ = {<std::__1::__compressed_pair_elem<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = {__value_ = {{__l = {{__is_long_ = 0, __cap_ = 209332974980}, __size_ = 1375840, __data_ = 0x14fe50 "p\022���\177"}, __s = {{__is_long_ = 0 '\000', __size_ = 4 '\004'}, __padding_ = 0x14fe01 "koza", __data_ = "koza\000\000\000`�\024\000\000\000\000\000P�\024\000\000\000\000"}, __r = {__words = {418665949960, 1375840, 1375824}}}}}, <std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = {<std::__1::allocator<char>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<char> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, static npos = 18446744073709551615}
jedyne co działa to dodanie w watch koza.c_str()
Moja platforma to msys2, clang 15 , Windows 10
Powinno to wyglądać tak (użyłem eksperymentalnie lldb)
lldb na Windows jest trochę nieużywalny bo szybko sie wysypuje
- screenshot-20230330081508.png (12 KB) - ściągnięć: 19
- screenshot-20230330082742.png (15 KB) - ściągnięć: 7