草庐IT

DEBUGGING

全部标签

c# - 部分类调试

我已经为我的xsd自动生成的类创建了一个分部类。问题在于调试这个部分类。无法识别断点或编译器不会在分部类中设置的断点处中断。//Autogeneratedclassbyxsd.exepublicpartialclassClass1{privateClass1Brand[]brandField;privatestringClass1guidField;.....}//DebugPart-probablyinadifferentfilepublicpartialclassClass1{publicstaticValiditysetValidity(Validityvalidity){//*

c# - Visual Studio 可以告诉我哪个引用引发了 NullReferenceException 吗?

我正在为MVC网络应用程序编写单元测试,并且我一直收到空引用异常,因为模拟测试对象仅被部分初始化。我知道哪一行抛出异常,它看起来像这样:returnSupervisor.RegistrationInformation.Registrations.Any(r=>r.RegistrationCountry.IsUSAOrCandada()&&(!DatesWorked.Start.HasValue||r.RegistrationDate=DatesWorked.End.Value)&&//...那里有很多引用资料,其中任何一个都可能是问题所在。但是,NullReferenceExcepti

c# - 在 Debug模式下跳过 While 循环

场景如下:我在要调试的方法的开头放置了一个断点...首先假设此方法中有第1部分,我想进入/跳过某些代码。..很好......在那之后有一个While循环,我不想进入/跳过它,我只想告诉调试器嘿,你自己运行这个循环10次,然后让我转到第2部分我的代码在此While循环之后开始,是否可以使用调试选项执行此操作?所以像这样:BreakPoint:MyMethod{PartOneofthecode:Ok,letsdebugitWhileLoop:Idonotcare,DonotwanttodebugitPartTwoofthecode:Yes,Iwanttodebugittoo}

c# - 条件 C# 断点?

我正在调试一个foreach循环,它将迭代超过1000次-所以我只想在循环内设置一个断点以中断特定项目。所以...foreach(Employeeemployeeinemployees){//DOSOMETHING//BREAKHEREWHENemployee.Id=='2342'//DOSOMETHINGELSE}我是否必须编写一个If语句和其中的一些伪代码并以这种方式中断它?那是唯一的方法吗? 最佳答案 if(employee.Id=='2342')Debugger.Break();或者,您可以在VS中设置条件断点,但根据我的经

c# - 调试的最佳实践

我最近使用VisualStudio和WinDbg对托管应用程序进行了大量调试,因此我经常被要求协助同事进行调试。有好几次,我发现人们只是在各处插入断点并希望得到最好的结果。根据我的经验,这很少是有用的技术。我的方法是这样的。重现问题。理想情况下尽可能减少输入。检查出了什么问题,并列出错误可能出在哪里的理论。通过调试代码的特定区域,一次检查一种理论。必要时重复步骤。对于复杂的调试问题,我经常与同事合作。对于WinDbg,这尤其有用。还有其他有用的调试技巧或最佳实践吗? 最佳答案 如果我可以给每个人关于调试的一个提示,那就是再次破坏它。

等效于 System.Diagnostics.StackTrace 的 C# 可移植类库

我正在处理的一个程序有一个名为“Error”的日志记录功能,可以在不使程序崩溃的情况下通知错误,但是,我想包含一个堆栈跟踪,以便可以更轻松地调试这些非fatalerror。我的第一直觉是使用System.Diagnostics.StackTrace,不幸的是,它在PCL中不可用。然后,我尝试抛出并迅速捕获异常。try{thrownewException();}catch(Exceptionex){returnex.StackTrace;}不幸的是,这只提供了调用堆栈的顶部:因为它不会在向下的过程中解开堆栈,所以它不会提供任何有用的信息。所以,我的问题是:如何在c#PCL函数中获取堆栈跟

c# - 确定 AccessViolationException DragDrop.DoDragDrop 的原因

我有一个WPF应用程序,当拖动操作开始时,它在某些计算机上崩溃并出现AccessViolationException。困难在于它只发生在我们构建服务器的构建上,当我在VisualStudio2010中本地构建时永远不会崩溃。所以我无法单步执行代码。我有以下信息:我们正在使用.net4.0仅当应用程序作为64位进程运行时崩溃,32位没问题。只有来自构建服务器的构建才会崩溃。不会在每台计算机上崩溃,只会在我们这里的一小部分笔记本电脑上崩溃。顺便说一句,都是同一个型号和硬件配置。都有Windows7,有的有sp1,有的不要。我应该采取什么下一步来诊断这个问题?这是崩溃的堆栈跟踪,它似乎发生在

c# - 在 Visual Studio 2010 中使用扩展对象调试 XSLT

我目前正在从事一个涉及大量XSLT转换的项目,我真的需要一个调试器(我有1000多行长的XSLT,但我没有编写它们:-).该项目是用C#编写的,并使用了扩展对象:xslArg.AddExtensionObject("urn:",new());据我所知,在这种情况下,VisualStudio是唯一可以帮助我逐步调试转换的工具。由于扩展对象,静态调试器没有用(当它到达引用其namespace的元素时会抛出错误)。幸运的是,我找到了thisthread这给了我一个起点(至少我知道这是可以做到的)。在搜索MSDN之后,我找到了使进入转换成为可能的条件。它们被列为here.简而言之:XML和XS

c# - AutoMapper.dll中出现 'AutoMapper.AutoMapperMappingException'类型的异常,但用户代码中没有处理

不知何故,我的代码不再起作用(它以前使用完全相同的代码确实起作用)。这是问题所在:代码我正在尝试使用以下代码将一些对象映射到ViewModel:配置:Mapper.CreateMap().ForMember(x=>x.Title,opt=>opt.MapFrom(src=>src.Book.Title)).ForMember(x=>x.Authors,opt=>opt.MapFrom(src=>src.Book.Authors.Select(x=>x.Name).Aggregate((i,j)=>i+","+j))).ForMember(x=>x.Identifiers,opt=>op

c# - DebuggerStepThrough、DebuggerHidden 在异步等待方法中不起作用

当您打开"Breakwhenanexceptionisthrown"VisualStudio调试器中的功能,它会针对选定的异常类型在任何地方中断。告诉它不要中断特定方法的方法是decoratethesemethodswithDebuggerStepThroughattribute(orDebuggerHidden).这,显然,出于某种原因不适用于async方法。这是重现该问题的片段。调试器将在TestAsync内部中断,即使它标有属性,但它不会在Test内部中断,因为异常(exception)(它们之间的唯一区别是第一个用async关键字标记):publicclassAttribute