Tag: 调试

是否可以在DebuggerDisplay中使用条件?

考虑以下课程: [DebuggerDisplay(“{GetType().Name,nq}: FileName = {FileName,nq}”)] public class FileWrapper { public string FileName { get; set; } public bool IsTempFile { get; set; } public string TempFileName { get; set; } } 我想添加一个基于IsTempFileName属性的调试器显示。 当实例是临时文件时, TempFileName = {TempFileName,nq}我想添加字符串, TempFileName = {TempFileName,nq} 。 我将如何实现这一目标?

远程调试不会破坏错误

我对Visual Studio中的远程调试相当新,我认为我之前从未做过。 以下是我尝试远程调试网络中某个服务器上的应用程序的步骤: 在VS2008“\\ server \ website”中打开一个网站 使用“无身份validation”和“允许任何用户调试”在“服务器”上启动msvsmon服务 从VS2008,使用远程传输连接到“服务器”上的w3wp进程 调试开始,一切似乎都没问题,但是当我带着错误进入页面时,它不会中断并让我调试。 我错过了什么吗?

如何解决私有字节(本机内存)泄漏?

我正在开发一个似乎有漏洞的C#应用​​程序。 我用过内存分析器,发现我的 私有字节不断增加,但所有堆中的 字节数不会增加,这意味着它可能是本机内存泄漏 现在我卡住了,如何在本机代码中发现内存泄漏?

在调试c#时,Visual Studio 2012中是否有一种方法可以使用F#REPL?

如果我在ac#程序中有断点,我很乐意使用F#REPL来检查我的代码。 这有可能吗?

PowerShell是否编译脚本?

假设我有一个简单的PowerShell脚本: 1..3 | Write-Host PowerShell如何处理它? 它是构建内存中的程序集还是一些临时的.dll文件? 我可以使用一些工具(例如ILSpy,VS,WinDbg)检查这个程序集和MSIL吗? PowerShell是否以相同的方式处理文件脚本和REPL命令行输入(即编译/解释)? 我可以将此编译的程序集与C#和其他.Net语言一起使用吗? PS脚本可以编译为本机二进制代码吗?

为什么Visual Studio Debugger不会枚举BitArray并向我显示结果?

对于以下C#代码行: BitArray bitty = new BitArray(new[] {false, false, true, false}); 如果我在Watch窗口中评估“bitty”,我看不到集合的成员。 如果我评估“bitty,results”,它应该枚举IEnumerable并显示结果,我会收到消息“只有可枚举的类型可以有结果视图”,即使BitArray是一个IEnumerable。 为什么调试器会这样做? CLARIFICAITON:我问的是VS Debugger Expression Evaluator中发生了什么,而不是询问如何在调试器中查看BitArray。

为什么不能在即时窗口中评估lambdas?

有什么特别的原因吗? 它根本不可能还是仅仅没有实现? 也许有任何第三方插件允许lambda评估? 更新: 我在codeplex Extended Immediate Window上找到了这个项目。 似乎已经放弃了一段时间,但这可以certificate一个概念。 有没有人知道任何其他即时窗口扩展插件? 那些可以在C#中运行/ foreach语句的例子?

当被要求修复程序中的错误时,你会发现超过100个实例

catch(Exception ex) { } 什么是最好的方法? 将它们全部撕掉并让它崩溃? 添加日志代码? 留言箱? 这是在C#中。

在非托管代码中,System.Diagnostics.Debugger.Launch()的等价物是什么?

我需要在满足某些条件时从我的本机C ++程序启动调试器。 在C#中我只需要调用System.Diagnostics.Debugger.Launch()。 我认为Win32 DebugBreak()调用将执行我想要的操作,但如果没有调试器,它只会终止应用程序。 如何从本机代码启动调试器的新实例(着名的“可能的调试器”对话框)? 它甚至可能吗? 我可以尝试使用COM来创建Visual Studio的新实例,但它有点复杂,并且还会将我锁定到特定版本的VS.

如何让我的代码在崩溃前创建转储文件?

我在C#和C ++中有一些代码(在一个项目中)。 这段代码有一些崩溃,我试图找到它。 但这次崩溃不会在任何时候重现 – 我找不到它。 我想配置代码/ Windows操作系统来在崩溃时创建转储文件。 我所拥有的限制是……我对此崩溃重现的机器的访问权限有限 – 这不是开发机器..这是测试实验室机器 那么,怎么做呢? 如何在解决方案中更改新转储文件将在任何崩溃时创建的属性? (目的是能够分析windbg工具中的转储)