我希望创建一个构建的项目构建,使其与发布版本相同,除了使用默认分配器的调试版本(对alloc / free进行canary检查等)。编译器/ CRT是Visual Studio 2010。
阅读CRT的文档似乎需要为_CrtCheckMemory(),_ malloc_dbg()等的调用定义_DEBUG,以免被删除。我不希望启用_DEBUG定义,因为这会比分配器影响更多。
有没有办法在没有定义_DEBUG的情况下使用CRT调试分配器?
答案 0 :(得分:1)
_malloc_dbg()
需要调试运行时,调试运行时需要_DEBUG
- 所以不,你不能这样做。
答案 1 :(得分:0)
您可以找到定义_DEBUG时使用的malloc调用的名称,并手动定义malloc来代替使用它吗?
如果使用c ++,则与new相同,您可以创建调试版本的全局覆盖