将Windows调试程序链接到项目

时间:2015-05-12 09:54:03

标签: debugging linker visual-studio-debugging

我编写了一个大项目,当我在调试或发布模式下打开它时运行,但是当我打开它而没有调试(ctrl + f5)时它会崩溃。我搜索了很长时间才发现堆错误,但没有找到任何东西。问题是我需要运行.exe的程序,所以我想问是否有可能将Windows调试器链接到.exe所以它始终以它开头。

2 个答案:

答案 0 :(得分:0)

如果它不立即崩溃,也许这会有所帮助:

      
  1. 您可以运行可执行文件。
  2.   
  3. 在visual studio中打开您的解决方案。确保它的构建相同。
  4.   
  5. 打开DEBUG菜单,然后单击attach to process。
  6.   
  7. 将打开一个窗口,列出正在运行的所有进程。选择崩溃的可执行文件
  8.   
  9. 再次单击DEBUG菜单并选择Exceptions(ctrl-alt-E)
  10.   
  11. 确保复选框" Thrown"检查公共语言运行时例外
  12.   
  13. 现在崩溃您的应用程序..它将在导致它的行停止。
  14. 还要查找环境指令。比如#IF DEBUG #END IF。或#IF RELEASE那种东西。也困了我几次..

    祝你好运。希望这有帮助!

答案 1 :(得分:0)

你可以做各种事情。首先要确保你有一个"大的尝试块"在主要。即将主逻辑置于试验中可以捕获异常并清楚地报告这些异常。这可能不是你案件中发生的事情。

您可以将调试器(包括Visual Studio)附加到正在运行的进程 - 请参阅"附加到进程"调试菜单下的选项。如果它是使用调试符号构建的,您可以执行此操作,即使对于发布代码,这也可能有所帮助。如果进行了优化,您可能会发现它很难。

最后,您可以生成崩溃转储并在其失败后进行检查。请参阅MiniDumpWriteDump上的文档。它的usage有几个例子。或者您可以安装中止处理程序:请参阅here。提到_set_abort_behavior,如果使用_CALL_REPORTFAULT调用,也会生成崩溃转储。