📅  最后修改于: 2023-12-03 15:14:17.388000             🧑  作者: Mango
CRTDBG C++ 是 Microsoft Visual Studio 中的一种调试工具,可以用于检查内存泄漏和其他与内存相关的错误。本文将介绍如何使用 CRTDBG C++ 进行调试。
在 Visual Studio 中启用 CRTDBG 调试非常简单。只需按照以下步骤操作即可:
在 Visual Studio 中打开项目。
单击“调试”菜单,然后选择“以管理员身份运行”。
单击“调试”菜单,然后选择“Windows” → “输出”。
在输出窗口中,输入以下行:
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
这会启用内存泄漏检查。
当您的应用程序结束时,如果存在任何内存泄漏,CRTDBG 将列出所有泄漏的块和它们的大小。这使您能够轻松地找到泄漏并修复它们。
以下是示例输出:
Detected memory leaks!
Dumping objects ->
{148} normal block at 0x00732950, 124 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
{147} normal block at 0x007327E0, 32 bytes long.
Data: <B X|Y > 42 BE 58 7C 92 B8 59 7C 00 00 00 00 00 00 00 00
Object dump complete.
CRTDBG 还可以检测堆损坏。这包括使用已释放的内存地址,写入已释放的内存等。
以下是示例输出:
HEAP CORRUPTION DETECTED: after Normal block (#35) at 0x00C96EC8.
CRT detected that the application wrote to memory after end of heap buffer.
CRTDBG C++ 是 Microsoft Visual Studio 中非常有用的调试工具,可以帮助您检查内存泄漏和其他内存相关错误。使用本文中的步骤,您可以轻松地启用 CRTDBG 并开始调试您的应用程序。