应用程序在控制台中正常工作但终止于窗口服务

时间:2012-12-07 07:24:24

标签: visual-studio-2010 visual-c++ windows-services heap

我在VS 2010中使用Visual c ++创建了一个控制台应用程序。我添加了控制台处理程序,以便当我按 Ctrl + C 时,应用程序可能会成功终止并且它可以正常工作对我没有错误。稍后我将应用程序放入窗口服务,并在以下SERVICE_CONTROL_STOPSERVICE_CONTROL_SHUTDOWN个案例中调用服务控制台处理程序中的相同控制台处理程序。当我停止服务时,我收到错误

  

HEAP CORRUPTION DETECTED:正常块(#119)0x003C5420.CRT后检测到应用程序在堆缓冲区结束后写入内存。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要分析在此失败后创建的转储文件。

  1. 所以第一步是setup collecting dump files
  2. 然后使用pdb文件在发布模式下构建程序并将其作为窗口运行 服务。
  3. 最后,如果你有这个失败的转储文件,你可以 使用调试器来分析它们。我经常为此目的使用
    WinDbg