我使用VS2012。我知道如何使用.NETReflector调试第3方代码并一直使用它。我想知道这是否可以通过JetBrains的dotPeek或没有dotPeek的R#本身来实现。我能够导航到反编译的第3方代码,但无法单步执行。有什么想法吗? 最佳答案 我看到这个问题仍在为我的博客增加流量,所以我将添加一个答案:是的,现在可以使用JetBrainsdotPeek调试第3方程序集。反编译器(完全免费),将其用作Symbolserver.在我的博文中HowtodebuganythingwithVisualStudioanddotPee
我正在开发一个程序,该程序使用System.Diagnostics.Debugger.Break()方法允许用户从命令行设置断点。这已经运行了好几个星期了。然而,当我今天修复一个单元测试时,我尝试从命令行使用调试开关,但它没有用。这是我尝试过的:我已经确认确实调用了Debug()方法(通过在它后面放置一个System.Console.WriteLine())我已确认构建仍在调试中我已经完成了一个干净的构建我已重新启动ProductStudioGoogle快速搜索没有显示任何内容,.Net的API文档也没有提及此功能未正确执行的任何内容。那么...有什么想法吗?
我正在编写一个应用程序,其中有一些我不想删除的调试代码,但我希望在编译发布/发布时修改或删除它。例如,我希望在调试版本中有这样的东西:MessageBox.Show(ex.ToString(),"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);...在发布版本中变成这样:MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);理想情况下,我希望做这样的事情:#ifDEBUG_BUILDMessageBox.Show(ex.ToStrin
在我们代码的一些地方,我们使用#ifDEBUGblock来简化开发。像这样的东西:#ifDEBUGserverIP=localhost;#elseserverIP=GetSetting()#endif或privateboolisLicensed()#ifDEBUGreturntrue;#endifreturnCheckSetting()还有一些地方我们会像这样进行外观更改:#ifDEBUGbackground=humorousImage.jpg#elsebackground=standardColor#endif依赖#ifdebug来简化开发是否危险?如果是,#ifdebug的有效用法
我能够在Debug模式下编辑我的代码,但随后弹出显示错误Editsweremadewhichcannotbecompiled.Executioncannotcontinueuntilthecompileerrorsarefixed但错误列表为空,我已选中启用编辑并继续。我使用的是vs2010。清理重启也没有解决问题。 最佳答案 当您的工作区损坏时,可能会出现此问题。只需关闭VisualStudio,删除(或者最好先重命名).vs文件夹,然后再次启动VisualStudio。它甚至可以在VS2017中发生。
DebuggerStepThrough属性允许您跳过进入某些方法/类/属性的步骤。在DebuggerStepThroughbeingignored澄清了c#编译器不会将此属性继承到编译器生成的IEnumerable执行。这种失败的一个简单例子是:staticvoidMain(string[]args){vara=SkipMe().ToList();}[System.Diagnostics.DebuggerStepThrough]staticIEnumerableSkipMe(){//commentoutlinebelowandthethrowwillbesteppedover.yiel
有时我发现自己在Debug模式下单步执行一个应用程序,直到我在某个特定的行上点击“步骤”,这会花费太多时间做某事,占用100%的CPU。在这一点上,我点击了“中断”按钮并尝试找出运行时间太长的程序。问题是,这个应用程序有大量的线程在运行,当我点击“中断”时,执行点转到了可能只是在“等待”的GUI线程。然后我必须搜索现有的线程(我数了数——这次是37个!)试图找到我正在执行的线程。我必须查看其中的每一个,直到找到我要找的那一个。我正在运行的线程是异步调用,因此它在线程池线程上运行。我想给这个线程一个描述性的名称,并在操作结束时重置它的名称。问题是,属性Thread.Name只能设置一次,
我正在尝试通过VisualStudio2010进行远程调试。但我无法告诉调试器使用远程计算机上的另一个(远程)帐户。(不要使用我的帐户。)有什么提示吗?更新:我的计算机上没有远程帐户(它在另一个域中)。所以我不能使用runas。 最佳答案 为此斗争了很长时间。检查一下两台计算机都在同一个域中,或者VS远程调试器和客户端VS都以具有相同密码的同一用户身份运行。您的用户可以在不同的域或工作组中,但登录名必须相同机器之间需要双向无限制的直接连接。 关于c#-.NET远程调试作为来自另一个域的另
当外部库包含LINQ提供程序时,它会在执行动态表达式树时抛出异常,我该如何在抛出该表达式时中断?例如,我使用第三方LINQ2CRM提供商,它允许我调用Max()IQueryable的方法|,但当它抛出一个InvalidCastException,当抛出异常时,我无法当场中断,因此很难查看堆栈跟踪,因为当调试器在我的代码中中断它时,它已经展开。我已经为提到的异常设置了“breakonthrow”。我的调试设置是:澄清我想要打破的确切位置。我不想在LINQ表达式中中断,而是想在执行表达式树时中断,或者换句话说,在执行IQueryable时中断。扩展方法Max()调用LINQ提供程序提供的覆
Windows服务在调试构建和发布构建之间可以获得多少性能提升(如果有的话),为什么? 最佳答案 对于托管代码,除非您为DEBUG构建有条件地编译了很多东西,否则应该没有什么区别-IL应该几乎相同。无论是否在调试器下运行,抖动都会产生不同的结果-对IL的编译影响不大。/optimize在编译为IL时会做一些事情,但它们并不是特别激进。并且其中一些IL优化可能会由抖动优化处理,即使它们没有在IL中优化(比如删除nops)。请参阅EricLippert的文章http://blogs.msdn.com/ericlippert/archiv