我一直想知道是否可以对libc ++启用任何调试检查。关于MSVC的STL,我最喜欢的一件事就是它从一开始就抓住了一些难以找到的bug(虽然我希望它更容易禁用速度)。在标题中偷看后我试了一下:
#define _LIBCPP_DEBUG_LEVEL 2
但是,这会导致构建错误(' __ get_db未声明')。有关这是否是正在进行的工作的任何见解,或者是否有不同的预期方式来启用这些检查?
答案 0 :(得分:2)
这绝对是一项正在进行的工作。 我需要更新(非常旧的)状态页here。
想法是用户将通过设置预处理器符号_LIBCPP_DEBUG
与其进行交互
只是定义它将提供基本测试,将其设置为数字> 1将进行更广泛的测试。
但是,正如您所发现的那样,它目前无法正常运行。
答案 1 :(得分:1)
在此期间,似乎取得了一些进展。至少现在有一些documentation没有声明调试模式被严重破坏。
如我链接的文档中所述,调试模式应通过将_LIBCPP_DEBUG
定义为0或1来控制;宏_LIBCPP_DEBUG_LEVEL
似乎是一些内部开关。
然而,在查看this one之类的问题时,虚假的编译错误仍然会发生。