Стеки и очереди отображаются в отладчике как пустые. макинтош - PullRequest
0 голосов
/ 17 ноября 2018

Screenshot of debugger showing that the queue is empty

Когда я отлаживаю программу, останавливаясь на точке останова, очереди и стеки отображаются как size = 0, когда их нет, но другие переменные, такие как векторы, работают нормально.

MacOS 10.14.1 Mojave Cmake 3.12.3 Компилятор Xcode C ++ Режим отладки LLDB 6.0

1 Ответ

0 голосов
/ 16 мая 2019

Ошибка CPP-14918. Обходной путь действительно прост, и это хорошо!

Вы должны найти ваше активное приложение CLion (это может быть в разных местах. Например, мой находится в моей библиотеке в ~ / Библиотека / Приложение \ Поддержка / JetBrains / Панель инструментов / Приложения / CLion / ch-0 / 191.7141.37 / CLion.app

Из терминала перейдите в каталог CLion.app. а затем перейдите к «Contents / bin / lldb / renderers / lldb_formatters»

В нем есть файл init .py Вам нужно отредактировать это (использовать sublime, vim, vi или что-то еще) и закомментировать все, кроме import lldb в первой строке.

так ..

import lldb

#lldb.debugger.HandleCommand('script import lldb_formatters.jetbrains_stl_formatters')
#lldb.debugger.HandleCommand('type synthetic add -l lldb_formatters.jetbrains_stl_formatters.StdDequeSynthProvider -x "^std::deque<.+> >(( )?&)?$"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^std::deque<.+> >(( )?&)?$"')
#
#lldb.debugger.HandleCommand('type synthetic add -l lldb_formatters.jetbrains_stl_formatters.StdDeque11SynthProvider -x "^(std::__1::)deque<.+>$"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^(std::__1::)deque<.+>$"')
#
#
#lldb.debugger.HandleCommand('type synthetic add -l lldb_formatters.jetbrains_stl_formatters.StdHashtableSynthProvider -x "^(std::tr1::)unordered_set<.+>.*"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^(std::tr1::)unordered_set<.+>.*"')
#
#lldb.debugger.HandleCommand('type synthetic add -l lldb_formatters.jetbrains_stl_formatters.StdHashtableSynthProvider -x "^(std::tr1::)unordered_map<.+>.*"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^(std::tr1::)unordered_map<.+>.*"')
#
#lldb.debugger.HandleCommand('type synthetic add -l lldb.formatters.cpp.gnu_libstdcpp.StdMapSynthProvider -x "^std::multimap<.+> >(( )?&)?$"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^std::multimap<.+> >(( )?&)?$"')
#
#lldb.debugger.HandleCommand('type synthetic add -l lldb_formatters.jetbrains_stl_formatters.StdSetSynthProvider -x "^std::set<.+> >(( )?&)?$"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^std::set<.+> >(( )?&)?$"')
#
#lldb.debugger.HandleCommand('type synthetic add -l lldb_formatters.jetbrains_stl_formatters.StdSetSynthProvider -x "^std::multiset<.+> >(( )?&)?$"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^std::multiset<.+> >(( )?&)?$"')
#
#lldb.debugger.HandleCommand('type synthetic add -l lldb_formatters.jetbrains_stl_formatters.libcxx_hash_table_SynthProvider -x "^(std::__1::)unordered_(multi)?(map|set)<.+> >$"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^(std::__1::)unordered_(multi)?(map|set)<.+>.*"')
#
#lldb.debugger.HandleCommand('type synthetic add -l lldb_formatters.jetbrains_stl_formatters.stdmap_SynthProvider -x "^(std::__1::)(multi)?(map|set)<.+> >$"')
#lldb.debugger.HandleCommand('type summary add -F lldb_formatters.jetbrains_stl_formatters.SizeSummaryProvider -e -x "^(std::__1::)(multi)?(map|set)<.+> >$"')

Само собой разумеется, если вам не нравится отсутствие средств форматирования jetbrains stl, вы можете раскомментировать строки. Однако проблема в этих форматерах.

Возможно, вы не получите то, что хотите - с форматерами явно есть другие проблемы - но вы получите, например. Размер показывает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...