Visual studio 如何在PC上的任意位置运行Visual Studio调试器中的exe?

Visual studio 如何在PC上的任意位置运行Visual Studio调试器中的exe?,visual-studio,debugging,Visual Studio,Debugging,我有一个程序(用C++编写的32位.exe),它在我的项目开发树的调试目录中运行良好,但当我将它移动到PC上的另一个文件夹时,它崩溃了。我想在调试器中从新位置运行它来调试它。如何在调试程序中的任意位置启动我的.exe 我正在运行Visual Studio 2013 我想在第一个可执行行设置一个断点,然后从那里开始执行,就像在正常调试路径中一样。您可以在应用程序中的某个位置添加该断点,这样在应用程序运行时会打开一个附加调试程序的提示 #if DEBUG if (!Syste

我有一个程序(用C++编写的32位.exe),它在我的项目开发树的调试目录中运行良好,但当我将它移动到PC上的另一个文件夹时,它崩溃了。我想在调试器中从新位置运行它来调试它。如何在调试程序中的任意位置启动我的.exe

我正在运行Visual Studio 2013


我想在第一个可执行行设置一个断点,然后从那里开始执行,就像在正常调试路径中一样。

您可以在应用程序中的某个位置添加该断点,这样在应用程序运行时会打开一个附加调试程序的提示

#if DEBUG
            if (!System.Diagnostics.Debugger.IsAttached)
                Debugger.Launch();
            Debugger.Break();
#endif

在Visual Studio 2013中,转到项目属性,选择调试配置并转到调试。输入命令、命令行参数和工作目录

下面是它的屏幕截图:

确保不要移动PDB。EXE包含对PDB的引用,如果PDB不在原始位置,Visual Studio将无法找到它们

如果已经移动了PDB,请在
Tools | Options | debug
中相应地设置符号路径

该对话框如下所示:


只需使用项目>属性>调试选项卡>启动外部程序即可。这也会发生在用户的计算机上,现在没有调试器,为AppDomain.CurrentDomain.UnhandledException编写事件处理程序从来都不是可选的。@HansPassant:让WER处理崩溃有什么不对?依我看,未经处理的异常处理程序从来没有像让Windows来完成这项工作那样有效。如果它能很好地工作,那么他当然不会问这个问题。不是每个人都是小型转储的骑师,至少是所有的客户端。我想在第一个可执行行设置一个断点并从那里开始,就像在正常调试路径中一样。我在我的问题中添加了一个编辑来澄清这一点。@HansPassant:我没有看到这样的选项卡(VS 2013)有一个叫做“调试”的东西,其中命令设置为$(TargetPath),工作目录设置为$(ProjectDir)。这些和它的外观有什么关系吗?用户可能不会喜欢这一点。我只是想正常地说“开始调试”,但是Visual Studio应该在新位置而不是MyProject\Debugg中查找。为什么要将二进制文件的调试版本提供给用户?您是说在不修改源代码的情况下,无法让Visual Studio在特定位置查找.exe?