可以启用libc++调试检查

Possible to enable libc++ debug checks?

本文关键字:调试 检查 libc++ 启用      更新时间:2023-10-16

我一直想知道是否有可能为libc++启用任何调试检查。关于MSVC的STL,我最喜欢的一点是它从一开始就捕获了一些很难发现的bug(尽管我希望它更容易禁用,以提高速度)。在头文件中窥视后,我尝试:

#define _LIBCPP_DEBUG_LEVEL 2

然而,这会导致构建错误('__get_db未声明')。是否这是一项正在进行的工作,或者是否有一种不同的预期方式来实现这些检查?

这绝对是一项正在进行的工作。这里有一个(非常旧的)状态页,我需要更新。

这个想法是用户将通过设置预处理器符号_LIBCPP_DEBUG与它交互只定义它将进行基本测试,将其设置为> 1的数字将进行更广泛的测试。

但是,正如您所发现的,它目前是不可用的。

似乎在此期间取得了一些进展。至少现在有一些文档没有说明调试模式已经严重损坏了。

如文档1链接中所述,应该通过将_LIBCPP_DEBUG定义为0或1来控制调试模式;宏_LIBCPP_DEBUG_LEVEL似乎是某个内部开关。

然而,像这样的问题,虚假的编译错误仍然可能并且确实发生。