网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
使用 C# 2.0 命令行编译器
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
说明 /debug 选项的用法,我们首先需要在我们的 finalEx.cs 代码文件中插入一些编码错误。请将以下代码添加到当前的 Main() 方法中:

// Create an array.string myStrings = {"Csc.exe is cool"};// Go out of bounds.Console.WriteLine(myStrings);

正如您可以看到的那样,我们试图使用越界索引访问我们的数组的内容。如果您重新编译和运行该程序,则会得到 IndexOutOfRangeException。尽管我们可以明显地指出该错误,但假如是一个不那么明显的更为复杂的错误,又该怎么办呢?

要调试使用 csc.exe 创建的程序集,第一步是生成包含各种 .NET 调试实用工具所需信息的 *.pdb 文件。为此,请输入下列命令(它们在功能上是等效的)之一:

csc /debug *.cscsc /debug+ *.cs

此时,您应当在应用程序目录中看到一个名为 finalEx.pdb 的新文件,如图 12 所示。


图 12. 应用程序目录中的新 finalEx.pdb

可以根据情况用 full 或 pdbonly 标记限定 /debug 标志。当您指定 /debug:full(它是默认标记)时,将以适当的方式对程序集进行修改,以使其可以附加到当前正在执行的调试器。既然该选项能够 影响所产生的 .NET 程序集的大小和速度,那么请确保只在调试过程中指定该选项。因为 full 是 /debug 标志的默认行为,所以上述所有选项在功能上是等效的:

csc /debug *.cscsc /debug+ *.cscsc /debug:full *.cs

另一方面,指定 /debug:pdbonly 可以生成一个 *.pdb 文件,以及一个只能在程序由调试工具直接启动时进行调试的程序集:

csc /debug:pdbonly *.cs

在任何情况下,既然您具有必需的 *.pdb 文件,那么您就可以使用许多调试工具(cordbg.exe、dbgclr.exe 或 Visual Studio)调试应用程序。为了不偏离本文的重点介绍命令行这一特征,我们将使用 cordbg.exe 实用工具调试该程序:

cordbg finalEx.exe

在调试会话开始以后,您就可以使用 so(单步执行)命令单步执行每个代码行了。当您单击出错的代码行时,您可以找到如图 13 所示的代码转储。


图 13. 单步执行命令代码转储

要终止 cordbg.exe 实用工具,请键入 exit 并按 Return 键。

本文的重点不是解释 .NET 调试工具的用法。如果您希望了解有关在命令行进行调试的过程的更多信息,请在 Visual Studio 帮助系统内查找“cordbg.exe”。

返回页首返回页首

杂项

至此,您已经了解了 C# 命令行编译器的核心选项背后的详细信息。为了使本文的内容更加完整,表 7 简要描述了我尚未谈论到的其余标志。

7. csc.exe 的其余选项

csc.exe 的其余选项定义

/baseaddress

该选项使您可以指定加载 *.dll 的预期基址。默认情况下,该基址由 CLR 选择。

/checked

指定溢出数据类型界限的整数运算是否会在运行时导致异常。

/codepage

指定要用于编译中的所有源代码文件的代码页。

/filealign

该选项控制输出程序集内部的节大小调整(512、1024、2048、4096 或 8192 字节)。如果目标设备是手持型设备(例如,Pocket PC),则可以使用 /filealign 指定可能存在的最小节。

/langversion

该选项指示编译器只使用 ISO-1 C# 语言功能,它基本上可以归结为 C# 1.0 语言功能。

/main

如果当前项目定义了多个 Main() 方法(这在单元测试期间可能有所帮助),则可以使用该标志指定在程序集加载时执行哪个 Main() 方法。

/nostdlib

默认情况下,程序集清单自动引用 mscorlib.dll。指定该选项可以禁止这一行为。

/optimize

当被启用 (/optimize+) 时,可指示编译器尽可能生成最小且最快的程序集。该选项会发出还指示 CLR 在运行时优化代码的元数据。

/platform

该标志告诉编译器针对 32 位或 64 位处理器优化程序集。一般来说,该选项只在 C# 代码基使用 P/Invoke 和/或不安全的代码结构时有用。默认值是“anycpu”。

/unsafe

当被启用时,该选项使 C# 文件可以声明不安全的作用范围,这通常用于操纵 C++ 样式指针。

/utf8output

该选项告诉编译器使用 UTF-8 编码输出数据。

  • 下一篇资讯: C#中调用Windows API的要点
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号