Winapi CreateProcess():“创建过程”;程序太大,无法放入内存”;

Winapi CreateProcess():“创建过程”;程序太大,无法放入内存”;,winapi,createprocess,Winapi,Createprocess,我目前正在尝试调试崩溃处理程序,它是一个外部可执行文件,当我的程序发现未处理的结构化异常时会调用它。我重新编译了崩溃处理程序的可执行文件,当我测试时,我得到一条消息:“程序太大,无法放入内存” 在仔细研究了一会儿之后,我发现这是由我未处理的异常过滤器中的CreateProcess调用引起的。我发现这条错误消息表明可执行文件已损坏,但是如果从命令行调用CrashHandler.exe,则不会出现此类错误 其他资料: 我试着重建我的生活 应用程序和崩溃处理程序 在调试和调试过程中多次 释放模式 我

我目前正在尝试调试崩溃处理程序,它是一个外部可执行文件,当我的程序发现未处理的结构化异常时会调用它。我重新编译了崩溃处理程序的可执行文件,当我测试时,我得到一条消息:“程序太大,无法放入内存”

在仔细研究了一会儿之后,我发现这是由我未处理的异常过滤器中的CreateProcess调用引起的。我发现这条错误消息表明可执行文件已损坏,但是如果从命令行调用CrashHandler.exe,则不会出现此类错误

其他资料:

  • 我试着重建我的生活 应用程序和崩溃处理程序 在调试和调试过程中多次 释放模式
  • 我已经尝试给运行的线程增加2个数量级的堆栈空间
  • 我在另一个已经在使用它的应用程序中测试了相同的CrashHandler.exe,没有问题
  • 我尝试使用以前运行过的早期版本的exe,但结果相同
  • 重新启动系统
我对CreateProcess的调用:

//Fire off the Handler
//HandlerArgs = "CrashHandler.exe arg1 arg2 arg3 etc..."
if(CreateProcess(NULL, HandlerArgs, NULL, NULL, TRUE, CREATE_PRESERVE_CODE_AUTHZ_LEVEL | CREATE_SUSPENDED,
                 NULL, NULL, &StartupInfo, &NewProcessHandle))

事实证明,我的一个构建后钩子正在从源代码管理存储库复制exe,而我在源代码管理存储库中的文件实际上就是pdb。测试时,我直接复制到我正在运行的文件夹,然后钩子会再次复制“损坏”的exe