作为Visual Studio的替代,我有哪些小巧且适用于C#应用程序的远程调试器选项?

5

只是一个简单(可能愚蠢)的问题:当我进行远程协助时(我使用VNC或TeamViewer),是否有一个简单的小型调试器工具可用?

我的C#应用程序已部署到我国的数千个客户端,有时会出现一些我无法简单回复的错误。如果有一个简单的调试器,我将使用它来测试特定的安装和环境,我可能会在几分钟内找到问题。


1
Visual Studio Express 版本是免费的,而且相对较小 - 但我不会说它们简单。 - ChrisF
4
您需要使用WinDbg进行调试,如果要调试托管代码,还需要安装SOS扩展。 - Cody Gray
@Dan:同意,但我认为这是一个前提条件,因为他已经在进行远程调试了。如果您认为您将要多次进行此操作,那么应该将程序集与PDB文件一起打包。 - Cody Gray
1
我发现了这个,看起来很有趣!CLR托管调试器(mdbg)示例[链接](http://www.microsoft.com/downloads/en/details.aspx?FamilyID=38449a42-6b7a-4e28-80ce-c55645ab1310&displaylang=en) - Ferdinando Santacroce
@FerdinandoSantacroce: 如果您接受适当的答案怎么样? - user240141
显示剩余3条评论
4个回答

3

您可以使用Redgate Reflector与Deblector一起使用。http://reflectoraddins.codeplex.com/。但通常我们会将所有未处理的异常记录到文本文件中,当客户联系我们时,我们会取出日志文件并发布修复了问题的新版本。


不错 - 没见过 - 必须仔细看看。它好用吗? - Rob Levine
1
坦白地说,我没有使用Deblector。相反,我使用Reflector及其文件生成器进行反向工程,而且它的效果非常好,所以我希望Deblector也能够正常工作。 - user240141
非常有趣...我也生成了大量的日志,但有时这还不够。 :-) 谢谢您的建议! - Ferdinando Santacroce
看起来正是我需要的;它使用了我之前提到的mdbg:链接。实际上,我需要再试用一下。 :-) - Ferdinando Santacroce

2
我想不出一个小型的替代调试器,可以像Visual Studio那样让您进入运行中的代码。
但是,您始终可以创建转储文件,它将为您提供整个进程的快照,包括所有线程和堆栈跟踪等。在更近期的Windows版本中,这很简单,只需在任务管理器中右键单击进程,然后选择“创建转储文件”。
一旦您拥有了这个文件,将其带到本地开发框中,在其中运行WinDbg并使用SOS,您就可以获得完整的视图。 Tess Ferrandez发布了一些非常棒的初学者实验室,以帮助人们开始进行此类操作。

你不需要一个转储文件,你也可以使用WinDbg和SOS附加到实时进程。 - driis
确实 - 我的想法是,在远程客户端机器上不需要WinDbg/SOS可能会更容易,而是将转储文件拉回到开发工作站。 - Rob Levine
谢谢Rob,我不知道这个可能性。我从来没有使用过WinDbg,我肯定需要学习一些使用它的技巧。 :-) - Ferdinando Santacroce
没问题,费迪南多 - 很高兴为您效劳。我建议从Tess的实验室开始作为一个不错的起点。 - Rob Levine

2

1

没有符号和源文件,你不会走得太远。如果没有这些东西,调试器将无法提供太多有用的信息,对于一个大型应用程序来说,这可能非常麻烦。

更有可能有用的解决方案是实现某种日志/转储收集,以便您可以将有用的信息带回您的机器进行分析。

或者,VS远程调试器将允许您通过网络将VS调试器连接到远程机器,但是在慢速互联网类型的连接上使用它会非常痛苦。


是的,对我来说连接到远程计算机非常困难且痛苦。您说我需要源代码才能逐步调试所需的代码:这是我之前没有考虑过的,实际上可能比我希望的更加复杂。:-S谢谢! - Ferdinando Santacroce
即使没有pdb文件或源代码,您也可以查看调用堆栈,包括方法和类名,查看本地变量,检查堆栈,设置断点等。所有这些信息都始终在托管程序集中。 - Lars Truijens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接