我正在调试一个foreach循环,它将迭代超过1000次-所以我只想在循环内设置一个断点以中断特定项目。所以...foreach(Employeeemployeeinemployees){//DOSOMETHING//BREAKHEREWHENemployee.Id=='2342'//DOSOMETHINGELSE}我是否必须编写一个If语句和其中的一些伪代码并以这种方式中断它?那是唯一的方法吗? 最佳答案 if(employee.Id=='2342')Debugger.Break();或者,您可以在VS中设置条件断点,但根据我的经
我无法在SilverlightWeb应用程序的服务器端命中断点。我知道代码会执行,因为我可以按照我的预期中断异步回调。只有我的机器有这个问题。我知道这似乎是一个常见问题,但是我看到的所有答案都没有帮助我,包括:断点为红色,表示它将被命中。在Web项目的属性上选中了Silverlight复选框。清理并构建解决方案。从源代码管理中获取新版本。清除了我的网络浏览器中的所有内容:缓存、cookie等...(我正在使用IE)。正在清除%windir%/Windows/Microsoft.NET/Framework/v4.0.30319/TemporaryASP.NETFiles中的临时文件。检查
我不断收到此错误消息,提示存在.cs文件的副本,因此不会命中断点。我尝试过清理解决方案、重建、删除obj和bin文件夹中的.pdb文件、关闭VS并重新启动它、重新启动整个机器(这是Windows!有时最复杂、无法解释的问题会像这样解决:\)知道我还能尝试什么吗?这是VS2015上的.net项目 最佳答案 我发现了问题,原来IIS配置为使用我备份文件夹中项目的不同副本。这听起来很傻,但如果有人有类似的问题,我会保留这个问题。 关于c#-"Thebreakpointwillnotcurren
我很难在VisualStudio中调试我的C#应用程序。我不知道如何逐行调试代码,但不是在程序启动的那一刻(因为我不得不多次按F5,因为程序需要大约200行才能初始化)。我的意思是让我们假设我希望调试在某个时刻开始。比如在每一行代码中都有一个断点,但实际上没有创建断点(每次我想要创建它们都会花费很多时间)。我希望我有点清楚。 最佳答案 我不是完全清楚你在找什么......如果您不确定如何逐行单步执行,请在要开始逐行调试(或暂停应用程序)的地方放置一个断点,然后使用F10作为“越过”或F11作为“步入”而不是F5(“开始”)。如果您不
我有一个条件断点,条件检查字符串的值,如果为真则停止。它停止了,但随后打开一个窗口说:断点的条件无法执行...返回的错误是“评估方法System.Collections.Specialized.NameValueCollection.get_Item()调用native方法”System.Globalization.TextInfo.Internal.GetCaseInsHash().不支持在此上下文中评估native方法。'。单击“确定”在此断点处停止。我搜索了答案,但他们说启用托管兼容模式,但没有用。 最佳答案 在项目调试设置下
我有一个带有列表属性的类,在某些情况下似乎会丢失一个元素。我无法查明这是何时发生的。所以我想做的是设置一个VisualStudio断点,该断点将在该值更改时暂停程序。条件断点在这种情况下不起作用,因为我不知道删除此断点的原因。换句话说,我希望我的程序在myList.Count计算出一个新数字时停止。关于如何做到这一点有什么想法吗? 最佳答案 由于CLR的限制,这在C#或任何其他.NET语言中是不可能的。VisualStudionative代码调试器支持C++代码的数据断点(link),它正是这样做的,但托管代码不支持。您可以按照该问
一个奇怪的VisualStudio2010调试器案例(它不能命中断点)这是重现问题的代码:classProgram{staticvoidMain(string[]args){boolb=false;if(b){Listlist=newList();foreach(variteminlist){}}else{Console.WriteLine("1");}Console.WriteLine("2");//addabreakpointhereinVS2010}//1.configuration:release//2.platformtarget:x64orAnyCpu//3.debugin
不管其他可能达到相同结果的选项(即添加断点手动),是否可以以编程方式将断点添加到VisualStudio项目的源代码中?如:try{FunctionThatThrowsErrors(objInscrutableParameters);}catch(Exceptionex){Log.LogTheError(ex);AddBreakPointToCallingFunction();}这样当你下次运行调试时,它会自动在上次运行时导致问题的所有点上设置断点。我并不是说这是一种特别有用的调试方法。我只是想知道是否有这种能力。 最佳答案 您可以
这非常危险,所以我想知道为什么允许这样做。由于我经常需要在VB.NET和C#之间切换,我有时会添加如下断点条件:foo="bah"如果string变量foo是"bah,我想停止,所以正确的方法是使用foo=="bah"而不是foo="bah"。但它“有效”。您不会在编译或运行时收到任何警告或错误。但实际上这修改变量foo,即使它有不同的值,它也总是"bah"。由于这种情况悄无声息地发生(断点永远不会命中),因此非常危险。为什么允许?我的推理错误在哪里(除了混淆C#和VB.NET语法之外)?在C#中(相对于VB.NET)一个assignmentstatement返回分配的值,因此在本例中
我在Chrome的Javascript开发者工具中启用了一些断点,现在我无法删除它们。每当我切换到DeveloperView时,我总是遇到一个非常烦人的断点。奇怪的是,在某些情况下我没有在它停止的地方放置任何断点。这是一个完全不同的代码。如何删除所有断点? 最佳答案 听起来您已经告诉Chrome在遇到所有异常时中断。在源选项卡的左下角,有一系列按钮:我圈出的那个(带有两条垂直线的实心六边形)在所有异常中断、仅未捕获异常中断和根本不中断之间循环。单击它直到它变成黑色(不是蓝色或紫色)。对于其他断点,它们位于“断点”类别下的右侧(您可能