在SharpDevelop里调试程序
SharpDevelop是一个开源的C#集成开发环境,可以在http://sourceforge.net/project/showfiles.php?group_id=17610&package_id=117376下载到源代码和二进制可执行文件。目前最新的版本是1.0.3.1768版。
安装还是很简单的,只要按照提示点下去就OK了,1分多钟就能装完,比起VS.NET2003来要快很多了(因为不包含安装.NET Framework和SDK,当然要能运行程序,这两样东西要事先装好的),打开后,感觉样子和VS.NET2003差不多。
新建一个WinForm程序,基本上只要会用VS.NET2003,很快就能上手。
但是比起VS.NET2003来,SharpDevelop还是有很多不足的:
1.SharpDevelop占的内存资源比VS.NET2003要多,就写了一点程序,就占了75M内存。
2.SharpDevelop不能在Project面板里修改文件名,这个很麻烦,我是进到目录里手动修改cs文件的文件名,在用notepad打开SharpDevelop的工程文件xxx.prjx,在替换cs文件名和资源文件的文件名。
3.SharpDevelop的代码Auto Complete时,不能显示方法、属性等的注释。
4.目前SharpDevelop最大的缺点是,不能调试代码,也就不能设断点了,SharpDevelop论坛里有个老外就戏称,“SharpDevelop就像是一辆没有轮子的汽车”。的确,没有Debug功能,简直就没法开发了,查看了资料后,得知SharpDevelop 1.0版将不会包含调试功能,因为调试功能不是一个简单的东西,会用到一些unsafe代码,但是,调试功能的代码编写目前已经在进行当中了。幸运的是论坛上的人提供了一些替代的调试方案——使用微软的DbgCLR.exe,我试了一下,还是很好用的,下面就介绍一下目前SharpDevelop的调试:
[MSDN] 打开/隐藏
CLR 调试器
Microsoft CLR 调试器 (DbgCLR.exe) 为调试服务提供了图形化界面,帮助应用程序开发人员发现和修复面向公共语言运行库的程序中的错误。CLR 调试器和附带的文档基于为 Microsoft Visual Studio .NET 调试器完成的工作。因此,文档主要涉及 Visual Studio 调试器而不是 CLR 调试器。大多数情况下,此信息对这两个调试器都适用。但是,您将发现 CLR 调试器中没有实现文档中描述的某些功能(请参见下一段)。您完全可以忽略这些功能和部分。
下面是文档中描述的 CLR 调试器和 Visual Studio 调试器之间的一些主要区别:
CLR 调试器不支持对 Win32 本机代码应用程序进行调试。CLR 调试器只能调试为公共语言运行库编写和编译的应用程序。
CLR 调试器中没有实现远程调试。
CLR 调试器中实现了“寄存器”窗口,但是该窗口中不显示注册信息。不支持其他涉及寄存器或伪寄存器的操作,如显示或更改寄存器值。
CLR 调试器中实现了“反汇编”窗口,但是如果应用程序被编译为 Win32 本机代码而不是公共语言运行库代码,则该窗口会显示为该应用程序生成的反汇编代码。
CLR 调试器不支持 F1 帮助。
CLR 调试器不支持“自动”窗口特性。
CLR 调试器解决方案模型
CLR 调试器使用解决方案将源文件和正在调试的应用程序关联起来。在打开已编译的应用程序及其关联的源文件时将自动创建解决方案。下次调试同一个应用程序时,可以打开该解决方案,而不必分别加载源文件和已编译的应用程序。
打开要调试的应用程序(第一次)
启动 CLR 调试器;运行 DbgCLR.exe,它位于 .NET Framework 安装的 GuiDebug 目录中。
从“调试”菜单中,选择“要调试的程序”。
在“要调试的程序”对话框中,转到“程序”框,然后单击省略号按钮 (...)。将显示“查找要调试的程序”对话框。
定位到包含要调试的 EXE 的目录并选择该 EXE。
单击“打开”。
这将使您返回到“要调试的程序”对话框。请注意,“工作目录”已被设置为包含您的 EXE 的目录。
在“参数”框中,键入程序所需的任何参数。
单击“确定”。
从“文件”菜单中,选择“打开”,然后单击“文件”。
在“打开文件”对话框中,选择要打开的源文件。
单击“确定”。
若要打开其他源文件,请重复步骤 8-10。
该过程会自动为您的调试会话创建解决方案。如果选择“启动”或“逐语句”,将打开“将文件另存为”对话框,使您可以保存该解决方案。如果选择“退出”或“关闭解决方案”,将显示一个消息框,提示您首先保存解决方案。
打开现有的解决方案
从“文件”菜单中选择“打开”。
打开/隐藏
可以把DbgCLR.exe加入到SharpDevelop的Tool菜单中去,以后启动就方便了:
·添加一个新Tool (Tools->Options->Tools->External Tools->Add)
·取名为“Debugger”或 其它类似的名字
·在 Command 框里填写DbgCLR.exe的路径 (通常在 C:\Program Files\Microsoft.NET\SDK\v1.1\GuiDebug\DbgCLR.exe)
·点击OK Button
注意:DbgCLR和SharpDevelop互不依赖,即使没有SharpDevelop,也可以按照上面[MSDN]里提到的方法来调试代码。
其实还有一个自动启动调试环境的方法,就是在要调试的代码前面加上一句代码:System.Diagnostics.Debugger.Break(); 代码运行到这里就会自动跳出对话框,让你选择调试工具:
然后,你就可以用F10,F11来调试了。
SharpDevelop总的来说,还是一款很不错的工具,一般的功能都有了,最主要的是它是不要钱的。现在SharpDevelop还是1.0版,相信在1.5或2.0版里,加上调试器后,它就会更强大了。
SharpDevelop + ndoc + nant + nunit + cvsnt + ...其实开发.net程序,工具也是可以不要一分钱的。