【c#调试笔记】教程文章相关的互联网学习教程文章

c# – 如何在停止调试器后启动清理方法?

我为我的库创建了一堆单元测试,它们操作某个.html文件.我想要做的是在测试之前备份文件,然后在测试结束时恢复它.我正在使用AssemblyCleanup属性来恢复部分,这非常有效.唯一的问题是,当我手动停止调试器时,不会执行清理代码,也不会恢复我的文件…有什么建议?解决方法:您无法处理终止进程的进程终止.您唯一的选择是使用另一个进程来观察已终止的进程. 重新安排代码以在启动时进行清理可能是一个更容易的选择.

c# – 调试Nuget包时找不到符号源代码【代码】

我有一个构建服务器,构建一个内部Nuget包.当我使用该包并尝试进入一个方法时,它不起作用. 所有符号都发布到我的符号服务器,我在VS设置中启用了这个符号. 如果我检查模块窗口,我看到Nuget DLL在那里,并为它和符号服务器加载了正确的符号. 但是,当我尝试进入代码时,它会跳过该方法.如果我使用调用堆栈专门查看该行代码,则会显示“ClientBase.cs not found”.如果我扩展“源搜索信息”,我会看到:Locating source for ‘C:\BuildAgent...

c# – Visual Studio 2008调试问题

我在VS 2008工作,在一个解决方案中有三个项目.我通过附加到第三方应用程序(SalesLogix,CRM应用程序)调用的.net进程进行调试. 一旦它附加到进程并且我尝试在其中一个项目中设置断点,它就不会在该文件中设置断点.它实际上将当前选项卡切换到另一个项目中的另一个文件,并在该文档中设置断点.如果文件没有打开,它甚至可以为我打开它.我无法解释这一点.我一点也不清楚.谁见过这种奇怪的行为?如果我自己没有看到它,我不会相信. 更多信息...

c# – 增加Visual Studio中的调试项目数

我经常需要在调试器(VS 2008)中查看字节[1024]和更长时间.至少在默认情况下,它显示15个项目.我有23英寸的宽屏,可以垂直显示3到4倍.有谁知道如何获得更多的项目(如果可能的话)? 澄清这主要是针对C#代码而我最感兴趣的是内联调试器窗口(当您将鼠标悬停在代码中的对象上时显示的窗口).解决方法:您可以编写自定义debug visualizer来执行此操作.

c# – visual studio 2010 – 使用“发布”web.config转换进行调试?

我从来没有真正理解这一点我知道配置设置是用于发布的,但是它们可以用于调试吗? 这意味着,我们为web.config(本地,登台和生产环境以及数据库设置)进行了各种转换.为什么我不能调试(跟踪)我在本地运行的网站项目,但是使用其他配置变换的配置?这可能吗?谢谢.解决方法:目前,Web.config转换仅在Web Publish Pipleline(WPP)期间应用,而不是在构建期间应用.目的是开发人员可以使用web.config来满足他们的本地需求,但是在发布期间应用转...

c# – Visual Studio 2010 Pro,不会在应用程序关闭时结束调试模式

当我在VS中运行我的代码时,当我输入某些方法时,在结束应用程序(关闭表单)被调试后,VS不会自动结束调试会话,迫使我手动结束它. 这并不总是发生,结果与在VS中运行应用程序时加载的某些窗口/类一致. 我想知道为什么会这样,我假设它表明我的托管代码中没有关闭文件或者那样的’某事’. 为什么会发生这种情况,如何跟踪和修复它?解决方法:如果您的代码在关闭窗口后继续运行,则会发生这种情况. 关闭窗口后暂停调试器以找出它正在做什么,然...

在VS2010中调试EXCHANGE传输代理c#

我获得了传输代理的来源,该代理解析符合特定条件的传入电子邮件.我需要做一些修改,但我需要跟踪变量,我的调试尝试都没有成功. 我构建了dll,在交换时安装它,设置一个断点,然后附加到相关进程,但似乎没有发生任何事情.我没有这种调试方法的经验,我很确定我错过了一个步骤,但我能找到的所有文档基本上都将这个过程列为这几个步骤.任何帮助?解决方法:弄清楚了 对于处于相同情况的任何人,您需要做的是: >在调试模式下编译项目.>部署它...

c# – 调试自托管的WebApi应用程序【代码】

我有一个WebApi应用程序与以下控制器:public class ContentController : ApiController {[HttpPost]public HttpResponseMessage Post(string contentType){//do stuffreturn new HttpResponseMessage(HttpStatusCode.OK);} }路线看起来像这样routes.MapHttpRoute("content", "api/content/{contentType}", new { controller = "Content", contentType = RouteParameter.Optional });当我在IIS / cassini中托管服务时,如果我按照预...

c# – 使用ScrollViewer.ScrollToEnd()进行AutoScroll只能在调试时使用,事件处理程序太简单了【代码】

查看this solution以获得更好的自动滚动功能我认为自己非常聪明地找到一个更简单的解决方案,但它只适用于调试会话:private void scrollviewer_Messages_ScrollChanged(object sender, ScrollChangedEventArgs e){ScrollViewer sv = sender as ScrollViewer;if (sv.VerticalOffset == sv.ScrollableHeight){sv.ScrollToEnd();//debug breakpoint}return;}在向此ScrollViewer中的文本块添加内容时,自动滚动工作,文本的底部保持在视图...

c# – 如何调试Lazy?

我有一个懒惰的< T>用lambda初始化.如何在调试时查看初始化lambda的主体?我希望有类似Expression类的DebugView,但我没有发现这样的东西.解决方法:因为懒惰< T>接受委托,没有涉及Expression类.您的lambda编译方式与项目中的任何其他代码一样,并且在调试期间不会预览该代码. Lambda表达式可以编译成IL或转换为表达式树.哪一个发生取决于上下文.如果您的参数声明为委托,则将生成常规IL代码.如果是表达式< TFunc>你会得到可以预览的表...

c# – 在调试器中跳过表达式身体属性【代码】

是否有类似的[DebuggerStepThrough]属性可用于C#中的表达式身体属性? 例如,我想跳过代码public Byte ByteArray => Builder.CreateArray();[DebuggerStepThrough]无法应用于属性. C#团队是否在C#6.0中提供任何其他解决方案?解决方法:DebuggerStepThrough对于表达式身体属性无效,因为:[DebuggerStepThrough] public Byte ByteArray => Builder.CreateArray();不编译.但是这样做:public Byte ByteArray {[DebuggerStepThrough]get...

c# – 接下来调试客户环境中的崩溃【代码】

我们产品的一部分是IE插件(BHO),它在多个操作系统版本/ IE版本的许多不同环境中运行愉快. 但是,在一个客户的试用设置中,通过Citrix XenDesktop运行XP SP3机器,当满足以下两个条件时,IE 7会崩溃: >我们的插件已加载>加载了Shockwave flash对象加载项(最新版本 – Flash11e.ocx) 一些额外的信息: >当我们尝试向用户显示对话框时,或者在此之后不久,就会发生崩溃.然而,崩溃不会发生在我们的代码中,这些代码都是用C#编写的,它发生在各...

c# – 如何在visual studio中使用堆栈跟踪进行调试?

当我们调试器返回如下错误页面时,我想知道是否有可能知道visual studio中的确切函数或代码行构成问题: 因为如果我读取堆栈跟踪,我在现有代码中找不到函数名称…..不幸的是,调试相当奇怪且很难.非常感谢你解决方法:在调试时,您可以检查调用堆栈以了解执行代码的顺序. 通过使用“调用堆栈”窗口,您可以查看当前堆栈上的函数或过程调用. 查看此内容以获取更多详细信息:How to: Use the Call Stack Window

如何调试在生产服务器上无故停止的C#服务

我们在C#中实现了一对发送和接收传真的服务.几年来,这些服务在几台服务器上运行良好 – 直到上周.我们的一个客户升级到Windows Server 2012.我们安装了这些服务,并且所有的地狱都是松散的.基本上,其中一个服务似乎工作了几分钟,然后,由于某种未知的原因 – 转到OnStop方法.所以有人或其他东西正在阻止它,但我不知道它是什么.我该如何调试呢?我是C#的新手,这不是我的代码.任何帮助,将不胜感激.解决方法:有趣的是,您正在发送和接收传...

c# – 如何检测visual studio pre / post-build命令行中的调试/发布?【代码】

如何从命令行预构建或后构建窗口中检测调试或释放模式? 我测试了下面的代码,它在代码文本窗口中工作.它可以转换为命令行代码吗?如果可以,怎么做,谢谢.bool debugging = false; #if DEBUGdebugging = true;// do something like to move ../debug/bin/ to somewhere. #elsedebugging = false;// do something like to move ../debug/bin/ to somewhere. #endifConsole.WriteLine(debugging);解决方法:您可以检查$(ConfigurationNa...

调试 - 相关标签