Tag: 调试

C#在调试模式下运行时是否编译出Debug语句?

看起来使用说Debug.WriteLine写入输出而不是大量#if DEBUG语句似乎是理想的(就可读性而言)。 当程序在发布模式下编译时, Debug.WriteLine所有开销是否会消失,就好像它不存在一样,或者该函数是否仍在调用,但内部没有任何内容? 如果是这样,有没有办法在自定义类上获得此function,即只有在我们处于调试模式时才会编译静态调用?

调试.NET异步/等待函数时无法检查变量

我有一个使用async/awaitfunction的.NET 4.5项目。 当我尝试在await语句后检查/快速监视变量引用时,我得到以下内容: The name ‘id’ does not exist in the current context 知道如何修复这个我可以调试吗? 编辑 – 这是代码 [Fact] public async Task works_as_expected() { var repo = Config.Ioc.GetInstance<IAsyncRepository>(); var work = Config.Ioc.GetInstance(); Customer c= new Customer() { FirstName = “__Micah”, LastName = “__Smith_test”, DateCreated = DateTime.Now, DateModified = DateTime.Now, Email = “m@m.com”, Phone = “7245551212” }; […]

部分类调试

我为我的xsd自动生成的类创建了一个部分类。 问题在于调试这个部分类。 无法识别断点,或者编译器不会在分部类中设置的断点处中断。 // Autogenerated class by xsd.exe public partial class Class1 { private Class1Brand[] brandField; private string Class1guidField; ….. } // Debug Part – probably in a different file public partial class Class1 { public static Validity setValidity(Validity validity) { // ********* BREAKPOINT IS SET ON THE NEXT LINE *********** validity.LastVerified = DateTime.Now; //certificates […]

可以访问属性的子“DebuggerDisplay”属性吗?

当前状态 有两个class: [DebuggerDisplay(@”One = {One}, two = {Two}”)] public class A { public int One { get; set; } public B Two { get; set; } } [DebuggerDisplay(@”Three = {Three}”)] public class B { public int Three { get; set; } } 使用它们: var a = new A {One = 5, Two = new B […]

如何知道Process崩溃了

在我的控制台应用程序中,我有代码看起来像 Process DKU = new Process(); DKU.StartInfo.FileName = “MSSQLExecutor.exe”; DKU.Start(); DKU.WaitForExit(); Console.WriteLine(“lets move on “); 这工作正常,它等待MSSQLExecutor.exe完成其工作,然后应用程序继续。 我的问题是,有时MSSQLExecutor.exe崩溃,Windows默认显示一个用于结束程序的对话框。 此时,我的应用程序将永远等待用户单击“关闭”按钮。 我想避免这种情况,因为我的应用程序将在没有用户交互的情况下作为服务运行。

当前上下文中不存在名称“$ exception”

今天我在我的工作中调试了一个应用程序。 我继续在我的一个catch块中设置断点,以便更详细地检查exception。 View Detail模式窗口正常打开,但不是向我显示exception的细节,而是抛出一个奇怪的错误,一个我从未得到的错误,也不知道它意味着什么: 错误说: 当前上下文中不存在名称“$ exception” 这令人沮丧,因为我在catch块范围内,所以我应该能够看到我的exception。 重新启动我的应用程序后,我设法调试它就好了。 这是唯一一次(到目前为止)我遇到了这个错误。 有谁知道这意味着什么以及如何解决它(无需重新启动应用程序)? 注意 :我使用的是Visual Studio 2012 Premium 。 版本11.0.61030.00更新4

Debug.Write无法正常工作

出于某种原因, Debug类突然停止为我工作。 public void WhyDebugIsNotWorking() { Debug.Write(“Why am I not working !!!!!!”); } 在上面一行, Debug.Write变暗(我认为Resharper正在调暗它),当我把光标放在它上面时,它说: 跳过方法调用。 编译器不会生成方法调用,因为该方法是有条件的,或者它是没有实现的部分方法。 在我的情况下,上述条件均不属实。 正如您所看到的,这是一个非常简单的案例。 我根本无法使用Debug类。 请帮忙!

防止DebuggerStepThroughAttribute应用于我的非xsd生成的分部类?

我使用xsd.exe工具根据我的xml架构生成一个类。 它使用DebuggerStepThroughAttribute创建了一个公共部分类。 好吧,我为这个类创建了另一个部分类文件来编写我的自定义代码,并且希望能够逐步进入我编写的代码,但看起来调试器也将步进属性应用于我的部分类。 我是否有一种简单的方法可以逐步进入我的代码,而无需在每次重新生成分部类时手动删除属性?

在构建版本时,C#中的Debug.WriteLine输出到哪里?

我在我的代码中放了很多Debug.WriteLine用于调试目的。 当我准备构建发布时,这些Debug.Write会影响发布版本,它们输出到哪里?

调试WinForms应用程序时收到CrossThreadMessagingException

我正在使用Wndows XP SP3 x86 + VSTS 2008使用C#编写一个简单的Windows窗体应用程序。 有一个名为button1的按钮,这里是click事件的事件处理程序,在执行if语句时,有Microsoft.VisualStudio.Debugger.Runtime.CrossThreadMessagingException 。 有没有人有什么好主意有什么不对? private void button1_Click(object sender, EventArgs e) { string recording = ConfigurationSettings.AppSettings[“recording”]; // exception thrown when executing the following if statement if (recording.Equals(“enable”, StringComparison.InvariantCultureIgnoreCase)) { CameraEncoder.Stop(); } } 更多代码: static WMEncoder CameraEncoder = new WMEncoder(); EDIT1: 我很困惑如何应用Marc在我的代码中使用Invoke的想法。 我应该使用以下代码段吗? CameraEncoder.Invoke((MethodInvoker) delegate { CameraEncoder.Stop(); });