文章编号: 151585 - 最后修改: 2005年9月30日 - 修订: 3.0 如何使用 _crtBreakAlloc 调试内存分配
概要当向下跟踪内存泄漏使用 debug C 运行时 (CRT),通常是很有用的分配导致该泄漏的内存之前立即设置断点。通过设置 _crtBreakAlloc 在编译时或运行时您可能会导致用户定义的特定点的内存分配断点。 更多信息跟踪内存泄漏与 _CrtDumpMemoryLeaks,如的调试 CRT 函数时将显示通常括在大括号 ({}) 中的分配编号。例如对于下面的示例是在分配编号为 18 的内存泄漏:
Detected memory leaks!
Dumping objects ->
{18} normal block at 0x00660BE4, 10 bytes long
Data: < > CD CD CD CD CD CD CD CD CD CD
Object dump complete.
如果静态链接到 C 运行时,要更改的变量称为 _crtBreakAlloc。如果要动态地链接到 C 运行时,该变量所需更改中,该窗口是的监视 {,msvcr40d.dll} * __p__crtBreakAlloc () ; 如果您使用的 Visual c + + 4.0 或 4.1。您想在更改该变量、 在监视窗口应该是 {、 msvcrtd.dll}*__p__crtBreakAlloc() 如果您使用的 Visual c + + 4.2 或更高版本。 若要确定使用的哪个版本的 CRT 都编译,请执行下列操作:
要动态设置分配断点,请执行以下步骤:
这篇文章中的信息适用于:
机器翻译注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。 点击这里察看该文章的英文版: 151585?
(http://support.microsoft.com/kb/151585/en-us/
)
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。 | 其他资源 其他帮助资源社区或论坛文章翻译 |























回到顶端