在VS调试器内部和外部运行有什么区别?

时间:2016-11-22 07:04:18

标签: c++ debugging

我有一个程序。如果它在Visual C ++ 2008调试器中运行,那么一切正常。但是如果调试版本在调试器外部运行,那么它将无法工作。所以我想知道两种情况之间的主要区别是什么?

由于

2 个答案:

答案 0 :(得分:0)

这是一个通用指南,解释了您需要了解的有关调试和发布版本之间差异的所有内容:Surviving the Release version

答案 1 :(得分:0)

如果你能够在visual studio中使用Debug(" F5")运行程序,

您可能遇到某种形式的缺失依赖项,例如缺少.dll文件或环境变量。 您可以验证这打开命令行并运行vcvarsall.bat,然后运行您的程序。或者,使用Window Start Menu中的Visual Studio命令行运行程序。

具体取决于您的安装vcvarsall.bat通常位于:

  

C:\ Program Files(x86)\ Microsoft Visual Studio \ VC \ vcvarsall.bat

如果您的程序仍然无法执行,您可以使用Dependency Walker找出您的程序可能具有的其他可能的依赖项。

但是,如果没有您遇到的问题的更多细节,我只能为您提供一些其他可能的初学者示例:

  

没有弹出错误消息,控制台应用程序,双击程序   没有明显的反应。

默认情况下,控制台应用程序在完成执行后不会使其控制台保持活动状因此,如果您的程序太快,您可能无法看到它"运行"。您可以在程序结束时添加system("pause");,以防止它立即关闭。

  

没有Pop错误消息,Windows应用程序,没有GUI代码,双击   程序没有明显的反应。

您的程序可能已在后台运行。使用任务管理器验证这一点,并查看该进程是否列在那里。如果您使用printfstd::out,则需要使用命令行运行程序以查看输出。