VLD导致应用程序崩溃

时间:2017-08-25 17:14:46

标签: c++ visual-c++ visual-leak-detector

ALL,

根据MSVC,我正在编写一个显然存在内存泄漏的应用程序。此应用程序包含二进制可执行文件和一对DLL。应用程序和DLL都使用“动态链接”。

我还有一个书面应用程序,它只包含一个静态链接的二进制文件。

我尝试将VLD应用于两者。

使用第二个应用程序没有问题。它可以启动并正在执行。

第一个应用程序 - 我甚至无法启动它。它总是在启动时崩溃。

我将VLD添加到mai可执行文件和我正在生成的所有DLL中。

所以我想知道崩溃可能是什么问题 - 无论是多个DLL还是我正在使用“动态链接”的事实。

我也想知道是否获取VLD的源代码并尝试与项目一起编译将有所帮助,我最终将能够运行应用程序并查看泄漏。

感谢您提供任何解决崩溃的指示。

EDIT1:

以下是崩溃的回溯:

  

NTDLL.DLL!77c40e92()
      [下面的框架可能不正确和/或缺失,没有为ntdll.dll加载符号]       vld_x86.dll!04f9abf0()
      vld_x86.dll!04fae9df()
      vld_x86.dll!04faeb4d()
      KernelBase.dll!75a241e6()
      user32.dll中!75f57433()
      user32.dll中!75f55ab6()
      user32.dll中!75f558c4()
      ntdll.dll中!77c496de()
      ntdll.dll中!77c49658()
      ntdll.dll中!77c57825()
      ntdll.dll中!77c5b530()
      ntdll.dll中!77c6751f()
      vld_x86.dll!04faf9b6()
      vld_x86.dll!04fadd99()
      MSVCRT.DLL!75c9b0f9()
      KernelBase.dll!75a24093()
      vld_x86.dll!04faf9b6()
      vld_x86.dll!04faf9b6()
      vld_x86.dll!04fade47()

1 个答案:

答案 0 :(得分:1)

ALL,

我安装了最新版本的VLD(2.5.1),将2个dll和pdb复制到可执行目录,程序能够在不崩溃的情况下启动。

我在读取VLD输出时遇到了一些问题,但我可能会为它创建一个新线程。

感谢您的阅读,并为噪音感到抱歉。