2.5 命令行调试器(cordbg.exe)
需要简要指出的是,.NET Framework 2.0 SDK中附带有一个名为cordbg.exe的命令行调试器。这个工具提供了数十个选项用于调试程序集。你可以通过指定/?标志来查看这些选项:
cordbg /?
表2-3列出了进入调试会话阶段可以由cordbg.exe识别的部分(肯定不是全部)标志及其简写。
表2-3 一部分有用的cordbg.exe命令行标志
|
标 志 |
作 用 |
|
b[reak] |
设定或显示当前断点 |
|
del[ete] |
去除一个或多个断点 |
|
ex[it] |
退出调试器 |
|
g[o] |
继续调试当前进程直至发现下一个断点 |
|
o[ut] |
退出当前函数 |
|
p[rint] |
打印所有加载的变量(局部、实参等) |
|
si |
进入下一行 |
|
so |
越过下一行 |
我假定大多数读者将使用Visual Studio 2005集成调试器,因此不再对cordbg.exe的每个标志一一赘述。但是,对于某些有兴趣的学习者,下面一节简单阐述了命令行调试的基本过程。
在命令行进行调试
调试之前,第一步是通过指定csc.exe的/debug标志,为当前应用程序生成调试符号。例如,为了给TestApp.exe生成调试数据,键入以下指令集:
csc @testapp.rsp /debug
这一步生成一个新文件(本例中名为testapp.pdb)。如果没有关联的*.pdb文件,仍然可能利用cordbg.exe。但是,在此进程期间将不能查看C#源代码。(这一过程通常也没有什么乐趣,除非你希望阅读CIL代码,使事情变得更复杂。)
一旦生成了*.pdb文件,就可以通过将.NET程序集指定为一个命令行实参,使用cordbg.exe开启一次会话(*.pdb文件将被自动加载):
cordbg.exe testapp.exe
此时,已经进入了调试模式,并且可以在(cordbg)命令提示符下使用任意数量的cordbg.exe标志(如图2-3所示)。

图2-3 使用cordbg.exe调试
当希望退出cordbg.exe调试时,仅需要键入exit(或简写ex)。我还是以为大部分人会选用由IDE提供的图形调试器,除非少数沉醉于命令行的程序员。如果需要更多信息,你可以在.NET Framework 2.0 SDK的文档里查询cordbg.exe。






