【发布时间】:2013-11-06 16:47:41
【问题描述】:
环境:我有一个引用一些 Visual C++ 项目的 .NET 4.0 解决方案。视觉工作室 2010。
如果我构建我的解决方案并直接从 bin 目录运行生成的 .exe,我可以重现我的错误。但是,如果我在 Visual Studio 中点击“播放”按钮运行它(或者如果我运行进程并附加到它),我可以单步执行代码,一切正常。
作为参考,我遇到的问题是访问冲突,这肯定是在 C++ 代码中发生的。
但更广泛地说,我想知道将调试器附加到进程“修复”问题的其他原因。
【问题讨论】:
-
堆有问题。在 Release 模式下编译你的代码并在 VS 中调试它
-
运行绿色的“播放”按钮将使用 IDE 的环境。从目录执行将使用默认环境。我的猜测是,可能需要将一些 DLL 或依赖项(目录路径)添加到您的 %PATH% 环境变量中。 @Matt,我不认为这是一个堆问题 - 对于 C++,您需要在 DEBUG 编译配置中进行调试。
-
另一个棘手的事情。该问题只能在发布模式下重现。但是当我在发布模式下调试它时,问题就消失了。
-
可能是时间问题。例如。由后台线程引起的竞争条件。当您单步执行代码时,它会为后台线程提供工作时间。正常运行时,后台线程未及时完成。
-
我不认为使用其他调试器(例如 WinDbg)也无法重现它,虽然它的闪存比 IDE 集成调试器少得多,但实际上功能要强大得多。
标签: c++ .net visual-studio-2010 visual-studio debugging