gpt4 book ai didi

c++ - 堆栈和队列在调试器中显示为空。苹果

转载 作者:行者123 更新时间:2023-12-02 01:39:27 32 4
gpt4 key购买 nike

Screenshot of debugger showing that the queue is empty

当我通过在断点处停止来调试程序时,队列和堆栈显示为 size=0(当它们不是时),但其他变量(如 vector )工作正常。

MacOS 10.14.1 Mojave Cmake 3.12.3 Xcode C++ 编译器 LLDB 6.0 Debug模式

最佳答案

该错误为 CPP-14918。解决方法非常简单,这是一件好事!

您必须找到事件的 CLion 应用程序(可以位于不同的位置。例如,我的图书馆位于~/Library/Application\Support/JetBrains/Toolbox/apps/CLion/ch-0/191.7141.37/CLion.app

从终端,cd 到 CLion.app 目录。然后 cd 到 '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 格式化程序,那么您可以取消注释这些行。但是,问题出在那些格式化程序中。

您可能无法得到您想要的东西 - 格式化程序显然还存在其他问题 - 但您会得到例如。显示尺寸。

关于c++ - 堆栈和队列在调试器中显示为空。苹果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53348751/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com