VLD崩溃程序

时间:2017-05-02 22:31:43

标签: c++ windows dll memory-leaks

ALL,

我正在尝试使用MSVC在C ++中开发程序。开发是在运行Windows 8.1的笔记本电脑上完成的。在其中一次运行中,我看到IDE报告了一堆内存泄漏。

谷歌搜索显示有一个名为Visual Leak Detector(VLD)的工具。所以我抓住它并添加了适当的选项,重新编译并重新运行。

显然应用程序崩溃了。我将VLD添加到项目包含但仍遭遇相同崩溃的所有DLL中。试图调试它,我发现应用程序甚至没有触及应用程序对象的创建。

我做的下一步是将我的代码移到另一台运行Windows 7且安装了相同MSVC 2010的笔记本电脑上。我在那台机器上重新编译了应用程序并运行它。应用程序启动没有任何问题。

下一步我试过 - 在Windows 8.1机器上的二进制可执行文件上运行Dependency Walker。 Dependency Walker发现我错过了几个DLL(API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL,API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL和更多的那种性质)。所以回到谷歌我发现这篇文章:c++/cli DLL fails under Win 8.1,它说我根本不应该使用Dependency Walker。

所以现在我的问题是 - 如何在Windows 8.1机器上使用VLD构建程序以查看我的泄漏位置?

谢谢你,抱歉这么长的帖子。

[编辑]

以下是崩溃时的回溯:

  

NTDLL.DLL!77440d72()
      [下面的框架可能不正确和/或缺失,没有为ntdll.dll加载符号]       vld_x86.dll!00d9abf0()
      vld_x86.dll!00dae9df()
      vld_x86.dll!00daeb4d()
      KernelBase.dll!74dd3126()
      user32.dll中!75cd7433()
      user32.dll中!75cd5ab6()
      user32.dll中!75cd58c4()
      ntdll.dll中!7744959e()
      ntdll.dll中!77449518()
      ntdll.dll中!77457685()
      ntdll.dll中!7745b390()
      ntdll.dll中!7746735f()
      vld_x86.dll!00daf9b6()
      vld_x86.dll!00dadd99()
      MSVCRT.DLL!756ab0f9()
      KernelBase.dll!74dd2fd3()
      vld_x86.dll!00daf9b6()
      vld_x86.dll!00daf9b6()
      vld_x86.dll!00dade47()

[/编辑]

0 个答案:

没有答案