Tag: 调试

C#代码仅在步骤中给出预期结果?

好的,我有一个骰子扔应用程序… 当我逐步执行代码时,它正常运行,’结果’包含正确的投掷结果数,并且它们看起来是随机的,当我让代码运行并完全相同的事情它产生一组相同的数字。 我确信这是一个逻辑上的错误,我看不到,但摆弄它好几个小时都没有改善情况,所以任何帮助都很有帮助。 🙂 class Dice { public int[] Roll(int _throws, int _sides, int _count) { Random rnd = new Random(); int[] results = new int[_throws]; // for each set of dice to throw pass data to calculate method for (int i = 0; i < _throws; i++) { int thisThrow = Calculate(_sides, _count); //add […]

如何在VS2008监视窗口中查看字符串的hex值?

我在VS2008的监视窗口中有一个字符串,希望看到每个字符的hex表示。 如果我右键单击有一个hex选项,但这似乎没有做任何事情。 有人知道如何将字符串视为一系列hex值吗?

我无法在剃刀视图中设置断点

我知道可以在MVC Razor视图中设置断点但是出了点问题并且它不再起作用了.. 我试图重新启动visual studio 2013并更改一些调试选项。 你有什么建议吗?

奇怪的“当前上下文中不存在名称”错误

我正在调试Visual Studio 2015中的以下代码片段: Stream xmlFileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceFilePath); if (xmlFileStream != null) { var reader = XmlReader.Create(xmlFileStream); XDocument schemaDefinition = XDocument.Load(reader); // NullReference … 最后一行抛出一个NullReferenceException ,所以我开始调试,我有一个最奇怪的情况: 因此,抛出NullReferenceException的行, reader的声明/初始化下面的行,我得到的reader不存在。 这怎么可能? 我甚至重新启动了我的电脑,我已经清理了几十次重建项目。 更多信息: 代码使用Resharper的unit testing运行器从unit testing(NUnit)运行。 目标框架是.NET 4(测试和代码程序集) xmlFileStream在那一点看起来很好 进一步向上调用堆栈似乎有一些与线程相关的东西(我对项目还不熟悉,尚未确定它的使用原因): lock (Threadlock) { if (!SchemaConfigurations.Keys.Contains(dialect)) { SchemaConfigurations.Add(dialect, new SchemaConfiguration { /*DOING THIS*/ MessageStructureConfigurations = ReadMessageStructureConfiguration(dialect), SegmentConfigurations = ReadSegmentConfiguration(dialect), […]

当C#编译器的内容具有Conditional属性时,它是否会优化foreach块?

我正在编写一些调试代码,我想知道我在做什么可能会损害性能。 我们来看看代码: foreach (var item in aCollection) Debug.WriteLine(item.Name); 我知道Debug类使用Conditional属性来避免在发布模式下编译(或者每当DEBUG未定义时),但是当在发布模式下编译时,这最终会成为无用/空迭代,还是会被编译器优化?

我可以阻止CLR优化掉调试信息吗?

我为unit testing编写了一个抽象基类,为我们的测试运行设置了足够的环境。 该类将一些运行时环境位公开为属性,其类型因test而异(属性类型是inheritance的具体测试类中指定的类型参数)。 这一切都很好,除了一位同事发现他无法在调试器中查看任何类的属性。 原因是他没有在他的inheritance类中定义字段,并且CLR优化了某些东西,所以调试器无法显示属性。 是否有可能以某种方式在基类中防止这种情况,或者我是否必须告诉每个人他们需要定义至少一个在测试期间某处使用的字段? 编辑: 听起来像一个可能的罪魁祸首应该是优化/调试设置。 也就是说,我正在调试模式下从Visual Studio构建应用程序,我已经仔细检查了所有项目都是为调试版本设置的,并且此解决方案中的所有项目都没有设置Optimize标志。 也许有必要注意我正在使用MSTest和Visual Studio测试运行器。 编辑2: 通过“无法查看属性”我指的是当我在Quickwatch中评估属性并获得红色感叹号和文本“无法评估表达式”错误文本时。 并且为了避免你认为我完全偏离我的怀疑,添加一个在测试初始化​​方法中初始化的实例字段会使问题消失…… 编辑3: 检查构建输出。 我注意到使用以下选项调用编译器: /debug+ /debug:full /optimize- /define:DEBUG,TRACE 我认为这足以阻止这种情况发生,但是你去了。 🙂

获取运行时期间的本地对象/变量列表

我正在尝试创建一个简单的记录器来检查客户端发生了什么。 如何获取本地列表(在调试时显示在visual studio上)? 有点像当一个断点被击中时,当前现有的对象/变量实例显示在Locals选项卡上,或者我只是在每次写日志时得到变量的当前值?

我该如何调试mvc4 razor视图?

我已经习惯了C#和vb.net winforms,通常可以通过设置断点和单步执行代码来找到我需要的所有错误。 我想知道我做错了什么。 我在这里放置一个断点: public ActionResult Index(int id) { var cnty = from r in db.Clients where r.ClientID == id select r; if (cnty != null) // breakpoint here { return View(cnty); // F11 jumps over this section of code returning me to the error page below. } return HttpNotFound(); } 然而,我再也不知道它究竟出错的地方或原因。 我怎样才能找出原因或更好的错误呢? 我正在使用VS2012 mvc4 […]

获取第一次机会exception的行号

我从某个地方抛出了exception,但是我从编译器得到的只是“mscorlib.dll中出现类型’System.ArgumentOutOfRangeException’的第一次机会exception”。 这对我来说没用,因为那不是我的代码(很确定它是默认库)。 我想看到堆栈跟踪或其他什么,所以我知道在我的代码中出错的地方。 它是一个相当大的代码库(其中大部分都不是我的),而且还有很多multithreading和其他东西正在进行中,因此几乎不可能尝试逐步完成代码而不知道从哪里开始查找。 是否有某些设置可以使所有exception触发中断,因此我可以在调用堆栈出现时看到它们,而不是仅仅让它们在输出中以无效的错误消息无声地失败?

为什么我无法调试动态加载的程序集?

我正在开发一个Web API项目,该项目使用内部模拟框架,允许拦截和修改来自控制器的响应。 它使用MEF加载一个程序集,该程序集包含在匹配某些前提条件时执行的代码。 我知道这是正常的,因为我可以在响应中看到模拟已经执行,但由于某种原因我无法调试动态加载的程序集中的代码。 虽然断点看起来很活跃,但执行永远不会破坏。 我试过调用Debugger.Break(); 它确实中断,但调用堆栈显示为空,Visual Studio仅显示此消息: 我可以看到程序集及其符号已加载到模块窗口中: 我可以在调用动态加载的程序集( behavior参数)之前中断,如下所示: private HttpResponseMessage ApplyBehavior( IMockBehavior behavior, string controller, string action, HttpRequestMessage request, HttpResponseMessage mockedResponse) { return behavior.Apply(controller, action, request, mockedResponse); } 如果我尝试在立即窗口中检查behavior变量,Visual Studio将显示以下exception: behavior.GetType() ‘behavior.GetType()’ threw an exception of type ‘System.IO.FileNotFoundException’ Data: {System.Collections.ListDictionaryInternal} FileName: null FusionLog: null HResult: -2147024894 HelpLink: null InnerException: null Message: “Cannot […]