我正在开发VS2010中的C#.NET类库项目。在我的项目设置中 - >调试设置,我已将项目设置为启动外部程序(C:\ Windows \ SysWOW64 \ wscript.exe),该程序运行一个非常简单的jscript文件(test.js)。该脚本只是创建一个类的实例并调用其中一个方法。
问题是当我开始调试时,VS2010不会在我的任何断点处停止。如果我在VS2008中打开完全相同的项目,它会在断点处停止。是否有某个新设置阻止断点被击中?还有其他人遇到过这个问题吗?
答案 0 :(得分:10)
我的第一次检查是禁用“Just My Code”
再次尝试该方案。
答案 1 :(得分:10)
通过为使用该组件进行调试的应用程序创建配置文件以解决此问题:
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
使用此文件,您可以告诉调试器使用正确的运行时版本进行调试(默认情况下,调试器似乎使用版本4.0)。
答案 2 :(得分:5)
我有一整天的努力来找出为什么我无法调试我的visual studio 2012控制台应用程序,答案很尴尬。
我在“RELEASE”模式下运行它。
有时很明显很难找到。
答案 3 :(得分:3)
关闭Visual Studio IDE并打开它。现在它可以正常工作。对我来说,它也面临同样的问题。我用这种方式来克服
答案 4 :(得分:3)
我有一个“Rebuilt”VS2013项目,我无法调试(没有符号)。最后,我看到优化被检查(Project-&gt; Properties-&gt; Build)。我取消选中它并重建。符号最终加载。我的两分钱,只在绝对必要时使用(编译)优化。
答案 5 :(得分:2)
虽然我无法回答为什么会这样,但我可以为您提供解决方法。
包含
using System.Diagnostics;
在代码的最开头(例如类构造函数),放置以下行:
#if (DEBUG)
while(!Debugger.IsAttached);
Debugger.Break();
#endif
开始调试。
断点应该在你的代码中触发。 其他断点也应该触发。
答案 6 :(得分:0)
可能有很多原因。通常是因为你试图针对错误的版本进行调试。
这些行为大约占80%。
如果不好,请转到Debug&gt; Windows&gt;模块,如果相关的dll在那里,右键单击它并加载符号。
如果它不在列表中,请尝试运行代码。有时即使它说断点不会被击中,也只是因为直到你输入需要它的场景才加载dll。尝试依赖于dll的场景,无论如何它可能只是命中断点。
哦,还有一个想法,重新启动浏览器。您可能从旧的dll中缓存了一些内容。
答案 7 :(得分:0)
如果原因是错误的.NET运行时版本(这是我的问题),而不是创建配置文件,您只需在 附加到进程 中选择正确的版本对话框。
在对话框中,在 附加到 旁边,点击 选择 ,然后从 自动... 到 调试这些代码类型 ,您应该检查正确的版本。
如果这也是您的问题,那么您的断点上可能会显示“未加载符号”消息。选择正确的版本后,您应立即看到不再报告此错误。
答案 8 :(得分:0)
对我来说,它是通过以下方式修复的:
打开项目属性为VS2010
转到编译 - &gt;高级编译选项
将“生成调试信息”从“无”更改为“完整”
答案 9 :(得分:0)
问题可能是您的浏览器正在使用页面的缓存版本,您正在使用。 尝试在浏览器f.x的地址行中添加som废话额外的查询字符串。添加?NONSENSE = 1234 这会强制浏览器使用新版本的网页,因为它不知道该页面最终是否与此查询有所不同。下次使用?NONSENS = 1235。
答案 10 :(得分:0)
我的本机c ++代码中有错误的断点问题。 原因是我一直在编辑代码,所以代码中的某些行结尾不是\ r \ n。除非您搜索\ r \ n,否则无法在代码中看到。 插入正确的行结束后\ r \ n调试器工作。
答案 11 :(得分:0)
我在CLR项目中遇到了类似的问题。我在CLR项目中有一些旧的c ++语法。对于我,在工具&gt;选项&gt;调试&gt;一般情况下启用了“使用托管兼容模式”后,它开始达到断点。