我编写了一个大项目,当我在调试或发布模式下打开它时运行,但是当我打开它而没有调试(ctrl + f5)时它会崩溃。我搜索了很长时间才发现堆错误,但没有找到任何东西。问题是我需要运行.exe的程序,所以我想问是否有可能将Windows调试器链接到.exe所以它始终以它开头。
答案 0 :(得分:0)
如果它不立即崩溃,也许这会有所帮助:
还要查找环境指令。比如#IF DEBUG #END IF。或#IF RELEASE那种东西。也困了我几次..
祝你好运。希望这有帮助!答案 1 :(得分:0)
你可以做各种事情。首先要确保你有一个"大的尝试块"在主要。即将主逻辑置于试验中可以捕获异常并清楚地报告这些异常。这可能不是你案件中发生的事情。
您可以将调试器(包括Visual Studio)附加到正在运行的进程 - 请参阅"附加到进程"调试菜单下的选项。如果它是使用调试符号构建的,您可以执行此操作,即使对于发布代码,这也可能有所帮助。如果进行了优化,您可能会发现它很难。
最后,您可以生成崩溃转储并在其失败后进行检查。请参阅MiniDumpWriteDump上的文档。它的usage有几个例子。或者您可以安装中止处理程序:请参阅here。提到_set_abort_behavior
,如果使用_CALL_REPORTFAULT
调用,也会生成崩溃转储。