Visual studio 为什么VS2010调试器不在我的断点处停止?

Visual studio 为什么VS2010调试器不在我的断点处停止?,visual-studio,debugging,visual-studio-2010,breakpoints,external-process,Visual Studio,Debugging,Visual Studio 2010,Breakpoints,External Process,我正在VS2010中从事一个C.NET类库项目。在我的项目设置->调试设置中,我将项目设置为启动一个外部程序C:\Windows\SysWOW64\wscript.exe,该程序运行一个非常简单的jscript文件test.js。脚本只是创建类的一个实例并调用它的一个方法 问题是,当我开始调试时,VS2010不会在我的任何断点处停止。如果我在VS2008中打开完全相同的项目,它确实会在断点处停止。是否有新的设置可以防止断点被命中?还有其他人遇到过这个问题吗?我的第一个检查是只禁用我的代码 工具-

我正在VS2010中从事一个C.NET类库项目。在我的项目设置->调试设置中,我将项目设置为启动一个外部程序C:\Windows\SysWOW64\wscript.exe,该程序运行一个非常简单的jscript文件test.js。脚本只是创建类的一个实例并调用它的一个方法


问题是,当我开始调试时,VS2010不会在我的任何断点处停止。如果我在VS2008中打开完全相同的项目,它确实会在断点处停止。是否有新的设置可以防止断点被命中?还有其他人遇到过这个问题吗?

我的第一个检查是只禁用我的代码

工具->选项 调试器 取消选中“仅启用我的代码”
请重试该场景

虽然我无法回答为什么会发生这种情况,但我可以为您提供解决方法

包括

使用系统诊断; 例如,在代码类构造函数的最开始处放置以下行:

如果调试 虽然Debugger.IsAttached; 调试器。中断; 恩迪夫 开始调试

菜单工具→附加到进程 附加到您的流程中。 断点应该在代码中触发。
还应触发其他断点。

要解决此问题,请为使用组件调试以下数据的应用程序创建配置文件:

<?xml version="1.0"?>
<configuration>
  <startup>
     <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

通过此文件,您可以告诉调试器使用正确的运行时版本进行调试。调试器似乎默认使用4.0版。

我花了一整天的时间试图找出为什么我无法调试visual studio 2012控制台应用程序,而答案令人尴尬

我在发布模式下运行它


有时显而易见的是很难找到。

可能有很多原因。通常这是因为您试图针对错误的版本进行调试

这些操作在80%的时间内有效

获取最新代码 清洁的 重建 重新启动IIS 再试一次 如果不好,请转到调试>窗口>模块,如果有相关的dll,请右键单击它并加载符号

如果它不在列表中,请尝试运行代码。有时,尽管它说不会命中断点,但这只是因为dll在您进入需要它的场景之前不会加载。尝试依赖于dll的场景,它可能会遇到断点


哦,还有一个主意,重启你的浏览器。您可能从旧的dll中缓存了某些内容

如果原因是错误的.NET运行时版本(这是我的问题),您可以在“附加到进程”对话框中选择正确的版本,而不是创建配置文件

在对话框中,单击“附加到”旁边的“选择并从自动切换…”。。。要调试这些代码类型,您应该检查正确的版本


若这也是您的问题,那个么您的断点上可能并没有加载消息的符号。选择正确的版本后,您应该立即看到不再报告此错误。

对于我来说,它已通过以下方式修复:

打开项目属性是VS2010

转到编译->高级编译选项

将“生成调试信息”从“无”更改为“完整”


问题可能是您的浏览器正在使用您正在使用的页面的缓存版本。 尝试在浏览器f.x的地址行中添加som无意义的额外查询字符串。添加?无意义=1234
这将强制浏览器使用新版本的网页,因为它不知道该网页最终是否与此查询的外观不同。下次使用?NONSENS=1235。

关闭Visual Studio IDE并打开它。现在它可以工作了。对我来说,它也面临同样的问题。我用这种方法克服了

我有一个重建的VS2013项目,无法调试任何符号。最后,我看到优化被选中了Project->Properties->Build。我检查了它并重建了它。最后加载符号。我的两分钱,在绝对必要的时候只使用编译优化。

< P>我在我的C++代码中有一个错误的断点。 原因是我一直在编辑代码,因此代码中的某些行尾没有\r\n。除非搜索,否则无法在代码中查看\r\n。
插入正确的行尾后\r\n调试器工作。

我遇到了类似的问题,但它在CLR项目中。在CLR项目中,我有一些旧的C++语法。对于我来说,在“工具”>“选项”>“调试”>“常规”中启用“使用托管兼容性模式”后,它开始出现断点。

是否存在符号,并且是否确定源与正在调试的程序集相同?您重建了吗?如果我更改了源,我会在输出中看到更改。是的,我试过重建。这是为我做的!调试器只在我的代码中的分支处停止并返回if语句,这实际上是非常合乎逻辑的;这与我的程序的控制流一致。切换到调试模式,修复它!