Tag: 调试

你能进入VS 2010的特定属性吗?

我知道你可以步入每个房产或者不进入每个房产,但我真的希望能够进入一个特定的房产,而不是其他房产。 这可能吗? (我也知道我可以使用键盘命令,但我会问是否有一个更永久的解决方案。)我有很多属性,我的安装人员做重要的事情,所以踩到他们是愚蠢的,但我的大部分吸气者都是无意义。 我正在寻找类似的东西: public string ImportantProperty { get { return _importantProperty; } [DebuggerStepThrough(false)] set { if (this.State != ConnectionState.Closed) throw new InvalidOperationException( “Important Property cannot be changed unless This is closed.”); if (ImportantProperty == value) return; _importantProperty = value; OnImportantPropertyChanged(new EventArgs()); } } 不幸的是,我找不到任何像[DebuggerStepThrough(false)]那样的东西,我必须求助于关闭属性转换并将[DebuggerStepThrough]放在我不希望逐步执行的任何地方 。

Silverlight – Debug.WriteLine()不适用于长字符串

我有一个很长的(3626个字符)字符串。 当我有我的代码 Debug.WriteLine(myString); 它只写第一部分。 我怎么能告诉它写出整件事?

OWIN干扰log4net

在我的应用程序中,我有以下日志记录策略/ appender: DebugAppender :如果根级别是DEBUG, 则将每个与DEBUG匹配的消息写入默认的跟踪侦听器输出 ConsoleAppender :如果应用程序模式(全局上下文属性)是’console’,则将WARN上面的每条消息写入控制台输出 EventLogAppender :如果应用程序模式(全局上下文属性)是’service’,则将ERRROR上方的每条消息写入控制台输出 RollingFileAppender :将INFO上方的每条消息写入滚动平面文件 这在整个应用程序中都非常有效,直到第一行我使用IAppBuilder接口启动OWIN Web主机。 一旦我调用WebApp.Start ,我就注意到以下行为: 调试消息(ILogger.Debug)将被写入控制台输出 调试消息(ILogger.Debug)被写入VS调试输出两次 经过进一步调查,我发现OWIN默默地将System.Diagnostics.DefaultTraceListener和System.Diagnostics.TextWriterTraceListener的实例附加到默认的跟踪/调试输出,这可能是问题的根源。 但是,在app.config中声明DefaultTraceListener显然没有帮助。 有什么办法可以让OWIN配置得更少……偷偷摸摸?

“无可用源” – Visual Studio调试(即使已加载符号)

我已经设置了Visual Studio 2012 Professional来下载调试符号。 它设置正确,符号已下载。 我进入了我想要介入的代码行: bool result = Membership.ValidateUser(“user”, “password”); 我右键单击它并选择step into specific–>Membership.ValidateUser() 然后在Visual Studio中打开一个选项卡说: 无可用来源 – 当前位置没有可用的源代码 Membership.ValidateUser()位于System.Web.Security中的System.Web.Security命名空间中。 如果我打开模块窗口,我可以清楚地看到已经下载了该程序集的符号。 如果符号在那里,为什么我无法进入源代码?

contextswitchdeadlock

在VS 2008中调试我的程序时,我遇到了以下错误: CLR无法从COM上下文0x34fc1a0过渡到COM上下文0x34fc258 60秒。 拥有目标上下文/公寓的线程很可能是执行非抽空等待或处理非常长时间运行的操作而不抽取Windows消息。 这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或内存使用量随时间不断累积。 为了避免这种情况 它似乎是死锁,即使代码只包含一个简单的C#计时器:请参阅下面的代码段: private void RequestWork() { // The timer will be re-intialised if there are still no wating jobs in the database StopTimer(); // assign all the threads some work InitialiseTimer(); } /// /// Initialise a timer with a timer interval configured from app.config. Enable the timer and /// […]

TPL打破未处理的exception

我在我的应用程序中使用async await以及Task.Factory.StartNew ,但我注意到的一件事是,当未处理的exception发生时,visual studio不再破坏 这是我before using await意思 但在我将一个方法转换为一个Task并使用await之后 它仅在视觉工作室的输出区域中捕获… 顺便说一下:对我来说很奇怪,因为我是.Net4.5的新手,请原谅我,如果没有说明我需要的具体内容,那么我想知道的是 当使用异步等待时,我怎样才能使视觉工作室中断exception

BUG触发if和else同时Unity C#

我正在使用最新版本的Unity来体验一个非常奇怪的错误,IDE是visual studio 2015社区。 我有一个按钮,当它被点击时触发一个函数,并发送一个短字符串作为参数。 在方法中我首先检查字符串是空还是空,并且我运行一些代码,如果是这种情况,我运行一些其他代码(明显的标题)..问题是参数既不是null也不是空但是第一个条件正在被触发,我100%肯定,因为我记录了这个Debug.Log(“elementType : ” + elementType + ” result : ” + string.IsNullOrEmpty(elementType));的操作结果Debug.Log(“elementType : ” + elementType + ” result : ” + string.IsNullOrEmpty(elementType)); 它基本上打印fire.. false也我运行调试器以确保参数不是空的但是在if条件被触发后它甚至更奇怪了else语句也被触发了! 这是我展示问题的video: http : //screencast.com/t/iRtXtQaMDh8K 。 这是debug.log的截图: http : //prntscr.com/bv0xsg 我已经尝试重新启动Unity和visual studio,但没有运气。 我也对这个方法设置了一个lock ,以防万一其他的线程在某种程度上同时访问同一个方法,这肯定不是再次没有运气的情况。

OLEDBConnection.Open()生成’未指定的错误’

我有一个应用程序将Excel .xls文件上传到文件系统,使用对象实例上的.open()方法打开带有oledbconnection对象的文件,然后将数据存储在数据库中。 将文件上载和写入文件系统工作正常,但在尝试仅在生产服务器上打开文件时出现错误。 该应用程序在另外两台服务器(开发和测试服务器)上运行良好。 以下代码在Exception.Message中生成“未指定的错误”。 引用: System.Data.OleDb.OleDbConnection x = new System.Data.OleDb.OleDbConnection(@”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + location + “;Extended Properties=’Excel 8.0;HDR=Yes;IMEX=1′”); try { x.Open(); } catch (Exception exp) { string errorEmailBody = ” OpenExcelSpreadSheet() in Utilities.cs. ” + exp.Message; Utilities.SendErrorEmail(errorEmailBody); } :结束报价 服务器的c:\\ temp和c:\ Documents and Settings \\ aspnet \ local settings \ temp文件夹都提供\ aspnet完全控制。 我相信存在某种权限问题,但似乎找不到所述文件夹的权限与上载Excel文件的文件夹/目录之间的任何差异。 相同的位置用于保存文件并打开它,这些方法可以在我的工作站和两个Web服务器上运行。 Windows […]

浮点差异取决于调试构建的运行方式

我正在使用调试版本并在同一台机器上获得不同的结果,无论我是否在调试器下运行。 我使用优秀的TestDriven.Net来运行unit testing。 使用TestDriven.Net或外部NUnit运行程序“运行”会产生相同的结果 使用TestDriven.Net“使用调试器运行”会产生不同的结果 代码是 一种复杂的迭代网格变形程序,涉及浮点精度极限的重要计算 C#,VS2012瞄准.Net 3.5。 单线程 只有调试版本,没有构建版本 同一台机器,没有省电\ speedstep或我所知道的其他function Vanilla C# – 没有不安全的代码,非托管库,平台调用等。 没有调试器检查代码或奇怪的第三方库 我没有追溯到第一个区别(没有调试器就很棘手!)但考虑到代码是如何迭代的,它的输入敏感性和最小的差异将在给定足够时间的情况下增长到相当大的比例。 我知道编译器,平台和架构之间的fp重现性是多么脆弱,但是发现调试器是导致这种情况失败的因素之一令人失望。 我是否必须接受这个作为生活中的事实,或者您可以提供任何建议吗?

由于stackoverflow导致应用程序崩溃

这个错误让我非常伤心。 我无法在Application_OnError中捕获此错误。 我能得到的唯一消息是事件查看器日志。 Application: w3wp.exe Framework Version: v4.0.30319 Description: The process was terminated due to stack overflow. Faulting application w3wp.exe, version 7.0.6001.18000, time stamp 0x47919413, faulting module nlssorting.dll, version 4.0.30319.235, time stamp 0x4da3fc88, exception code 0xc00000fd, fault offset 0x000020d4, process id 0x%9, application start time 0x%10. 我有一个非常大的应用程序,并且由于上述错误,我无法判断stackoverflow的确切原因在哪里。 你能帮我解决这个问题吗?