草庐IT

DEBUGGING

全部标签

c# - 什么是线程退出代码?

调试时输出窗口中的线程退出代码到底是什么?它给我什么信息?它在某种程度上有用还是只是内部的东西,不应该打扰我?Thethread0x552chasexitedwithcode259(0x103).Thethread0x4440hasexitedwithcode0(0x0).可能有某种可能的退出代码列表及其重要性吗? 最佳答案 实际上似乎没有很多关于这个主题的解释显然但是退出代码应该用于指示线程如何退出,0往往意味着它安全退出,而其他任何事情往往意味着它没有按预期退出。不过这个exitcode可以自己在代码中设置,完全忽略这个。我能找

c# - 将整个对象转储到 C# 中的日志的最佳方法是什么?

因此,对于在运行时查看当前对象的状态,我真的很喜欢VisualStudio即时窗口给我的功能。做一个简单的?objectname会给我一个格式良好的对象“转储”。有没有一种简单的方法可以在代码中执行此操作,以便我可以在记录日志时执行类似的操作? 最佳答案 对于更大的对象图,我支持使用Json,但策略略有不同。首先,我有一个易于调用的静态类和一个包装Json转换的静态方法(注意:可以使它成为一个扩展方法)。usingNewtonsoft.Json;publicstaticclassF{publicstaticstringDump(ob

c# - 将整个对象转储到 C# 中的日志的最佳方法是什么?

因此,对于在运行时查看当前对象的状态,我真的很喜欢VisualStudio即时窗口给我的功能。做一个简单的?objectname会给我一个格式良好的对象“转储”。有没有一种简单的方法可以在代码中执行此操作,以便我可以在记录日志时执行类似的操作? 最佳答案 对于更大的对象图,我支持使用Json,但策略略有不同。首先,我有一个易于调用的静态类和一个包装Json转换的静态方法(注意:可以使它成为一个扩展方法)。usingNewtonsoft.Json;publicstaticclassF{publicstaticstringDump(ob

c# - 从 .NET 应用程序 (C#) 捕获控制台输出

如何从我的.NET应用程序调用控制台应用程序并捕获控制台中生成的所有输出?(请记住,我不想先将信息保存在文件中,然后再重新发布,因为我希望收到实时信息。) 最佳答案 使用ProcessStartInfo.RedirectStandardOutput可以很容易地实现这一点属性(property)。完整示例包含在链接的MSDN文档中;唯一需要注意的是,您可能还必须重定向标准错误流才能查看应用程序的所有输出。Processcompiler=newProcess();compiler.StartInfo.FileName="csc.exe"

c# - 从 .NET 应用程序 (C#) 捕获控制台输出

如何从我的.NET应用程序调用控制台应用程序并捕获控制台中生成的所有输出?(请记住,我不想先将信息保存在文件中,然后再重新发布,因为我希望收到实时信息。) 最佳答案 使用ProcessStartInfo.RedirectStandardOutput可以很容易地实现这一点属性(property)。完整示例包含在链接的MSDN文档中;唯一需要注意的是,您可能还必须重定向标准错误流才能查看应用程序的所有输出。Processcompiler=newProcess();compiler.StartInfo.FileName="csc.exe"

c# - 调试与发布性能

我遇到过以下段落:“Debugvs.ReleasesettingintheIDEwhenyoucompileyourcodeinVisualStudiomakesalmostnodifferencetoperformance…thegeneratedcodeisalmostthesame.TheC#compilerdoesn’treallydoanyoptimization.TheC#compilerjustspitsoutIL…andattheruntimeit’stheJITerthatdoesalltheoptimization.TheJITerdoeshaveaDebug/Re

c# - 调试与发布性能

我遇到过以下段落:“Debugvs.ReleasesettingintheIDEwhenyoucompileyourcodeinVisualStudiomakesalmostnodifferencetoperformance…thegeneratedcodeisalmostthesame.TheC#compilerdoesn’treallydoanyoptimization.TheC#compilerjustspitsoutIL…andattheruntimeit’stheJITerthatdoesalltheoptimization.TheJITerdoeshaveaDebug/Re

c# - 是什么让 Visual Studio 调试器停止评估 ToString 覆盖?

环境:VisualStudio2015RTM。(我没有尝试过旧版本。)最近,我一直在调试我的一些NodaTime代码,我注意到当我有一个类型为NodaTime.Instant的局部变量时(野田时间的中央struct类型之一),“Locals”和“Watch”窗口似乎不会调用它的ToString()覆盖。如果我打电话ToString()在监视窗口中明确显示,我看到了适当的表示,但除此之外我只看到:variableName{NodaTime.Instant}这不是很有用。如果我更改覆盖以返回一个常量字符串,该字符串将显示在调试器中,因此它显然能够发现它在那里——它只是不想在“正常”状态下使

c# - 是什么让 Visual Studio 调试器停止评估 ToString 覆盖?

环境:VisualStudio2015RTM。(我没有尝试过旧版本。)最近,我一直在调试我的一些NodaTime代码,我注意到当我有一个类型为NodaTime.Instant的局部变量时(野田时间的中央struct类型之一),“Locals”和“Watch”窗口似乎不会调用它的ToString()覆盖。如果我打电话ToString()在监视窗口中明确显示,我看到了适当的表示,但除此之外我只看到:variableName{NodaTime.Instant}这不是很有用。如果我更改覆盖以返回一个常量字符串,该字符串将显示在调试器中,因此它显然能够发现它在那里——它只是不想在“正常”状态下使

c# - #if RELEASE 会像 C# 中的 #if DEBUG 一样工作吗?

在我见过的所有关于#if编译器指令的示例中,它们都使用“DEBUG”。我能否以相同的方式使用“RELEASE”来排除在Debug模式下编译时不想运行的代码?我想用这个block包围的代码会发出一堆电子邮件,我不想在测试时不小心发出这些电子邮件。 最佳答案 RELEASE未定义,但您可以使用#if(!DEBUG)...#endif 关于c#-#ifRELEASE会像C#中的#ifDEBUG一样工作吗?,我们在StackOverflow上找到一个类似的问题: ht