C++ 替换/覆盖Windows CRT以进行低级调试

C++ 替换/覆盖Windows CRT以进行低级调试,c++,crt,C++,Crt,我最近一直在研究,在非常低的层中,开发人员有一个名为memoverride.cpp的文件,该文件覆盖了一些核心运行时工具以进行调试。这涉及到重新实现CRT提供的整个接口(例如用于malloc和msize的函数,用于\u crtBreakAlloc的存根等),并通过自定义类路由调用以跟踪分配等 我认为这很有趣,出于好奇,我尝试自己重新创建它,但是当链接时,我发现自定义实现和libucrt的符号之间存在冲突。如果我在Windows上使用/Zl编译器选项不与Windows CRT链接,那么我会得到关于

我最近一直在研究,在非常低的层中,开发人员有一个名为
memoverride.cpp
的文件,该文件覆盖了一些核心运行时工具以进行调试。这涉及到重新实现CRT提供的整个接口(例如用于
malloc
msize
的函数,用于
\u crtBreakAlloc
的存根等),并通过自定义类路由调用以跟踪分配等

我认为这很有趣,出于好奇,我尝试自己重新创建它,但是当链接时,我发现自定义实现和
libucrt
的符号之间存在冲突。如果我在Windows上使用
/Zl
编译器选项不与Windows CRT链接,那么我会得到关于CRT其余功能(例如字符串函数)的各种未定义符号

这种方法适合于低级调试吗?如果是,正确的方法是什么?它是否需要完全不与CRT链接,或者只选择CRT的一部分