.NET CF命令行调试器MDbg入门(一)

.NET CF命令行调试器MDbg入门(一)

认识MDbg和.NET Compact Framework 2.0 SP1

老狼的话:David Kline是.NET CF团队一位非常优秀的开发者,看到他这个系列文章已经很久了,一直没空翻译。今天用下班后的时间翻译出来,也是希望有个督促,能让这个系列文章让更多朋友认识。原文地址:http://blogs.msdn.com/davidklinems/archive/2006/07/13/665023.aspx

现在距离我写如何在.NET Compact Framework中使用命令行调试器(cordbg)的文章,已经有一段时间了。在这段时间里.NET CF的命令行调试已经发生了很大的变化。

去年发布的.NET Framewrok SDK 2.0中,出现了一个新的命令行调试器(MDbg)。MDbg是使用托管代码编写的,并且可以通过扩展程序集(DLLs)来添加新功能。在我们发布2.0版本的时候,这个扩展功能还没有被.NET CF所支持。不过当.NET CF 2.0 SP1发布的时候,我们的扩展程序集(mdbgnetcf.dll)已经可用了。

如果您读过我最初的命令行调试器系列文章,您也许会回忆起在.NET CF 1.0中得到命令行调试环境的几个步骤。我高兴地宣布,我们通过MDbg扩展开始的步骤要简单很多。我会在今天的文章里介绍如何为设备添加mdbgnetcf扩展,并运行命令。

预备步骤


在我们开始使用MDbg调试一个.NET CF应用程序之前,有一些准备工作是我们必须完成的。
1.    下载并安装.NET Compact Framework 2.0 SP1
2.    更新你的设备到.NET CF SP1
3.    拷贝下列文件到设备的/Windows目录中
a)    从 <drive>:/Program Files/Common Files/Microsoft Shared/CoreCon/1.0/Target/wce400/<cpu>
i.    edbgtl.dll
ii.    tcpconnectiona.dll
b)    从SP1的安装目录 (比如 <drive>:/Program Files/Microsoft.NET/SDK/CompactFramework/v2.0/WindowsCE/<version>/<cpu>
i.    netcfrtl.dll
ii.    netcflaunch.exe
4.    将你的应用程序文件部署到设备上
对于一台设备,步骤2和3只需要准备一次。步骤1每台开发、调试PC只需要准备一次。步骤4在每次应用程序更新后需要进行。

开始


一旦准备任务完成,我们可以使用MDbg开始调试我们的程序了。
1.    运行mdbg.exe
我推荐从Visual Studio 2005 Command Prompt中运行MDbg(Start Menu/All Programs/Microsoft Visual Studio 2005/Visual Studio Tools)或者SDK Command Prompt(Start Menu/All Programs/Microsoft .NET Framework SDK v2.0).这将保证MDbg.exe在搜索路径中。
2.    加载mdbgnetcf扩展
mdbg>load <path>/mdbgnetcf
请注意在使用load命令时,文件扩展名(.dll)是不用写的。
当扩展被加载后,会显示出下面的信息:
.NET Compact Framework extension loaded successfully.
3.    在设备中运行NetCFLaunch.exe
当NetCFLaunch启动,将会显示连接到设备所必须的传送参数(例如:169.254.2.1 6510)。我们将在下一步用到这个传送参数。 
4.    使用device命令连接到设备
device 169.254.2.1 6510
当device命令成功完成,我们将与NetCFLaunch程序建立一个连接。NetCFLaunch窗口将显示“Connection SUCCEEDED”。
5.    使用run命令运行你的应用程序
我将使用Visual Studio 2005中的WebCrawler示例程序
run "/program files/webcrawler.exe"
当run命令完成,MDbg将显示当前的source位置(应用程序的入口点)。
STOP: Breakpoint Hit
288: {
[p#:0, t#:0] mdbg>
注意:Mdbug涉及的初始或临时断点被调试器管理,当MDbg连接到应用程序时,断点被插入或清除。
现在你可以使用其他的MDbg命令来调试你的应用程序了。你可以使用h[elp] 或者 ? 命令来列出目前可用的命令。

在接下来的一周,我计划继续这个系列并讨论被mdbgnetcf扩展添加的其他命令,并且演示一些例子来告诉你们应该如何去做。

Enjoy!
-- DK
 
http://blog.csdn.net/atfield/article/details/1471465 Introduction Shared Source CLI 2.0 (开发代号Rotor) 是微软.NET Framework 2.0的Shared Source实现版本。Shared Source是微软推出的源代码共享计划,可以在定限制的情况下获得/使用源代码,详情可以参考Microsoft Shared Source Initiative主页:http://www.microsoft.com/resources/sharedsource/。Rotor的代码可以在非商业行为的前提下可以自由修改和发布,只需保留License声明即可。Rotor包含了下面的内容: 1. CLI的运行时(CLR)的符合ECMA标准的实现 2. C# & Jscript编译器 3. .NET Framework中的部分工具,如ilasm, ildasm, cordbg, gacutil, sn等 4. Build工具,如Build, Binplace, NMake等 5. PAL (Platform Adaptation Layer),支持其他平台 6. 自动化回归测试 7. Samples 由此可见,Rotor是研究.NET Framework实现的最佳材料。 Rotor的全部源代码可以在微软的MSDN网站上下载:http://msdn.microsoft.com/net/sscli/ 下载后解压缩,可以看到如下的目录结构: 目录 内容 Binaries.x86*.rotor Build出来的可执行文件和Symbols。这个目录在Build之后才会出现 clr CLI和BCL(Base Class Library)的实现 csharp C#编译器的实现就在这里了 Docs 文档 Env Build时所需的些文件 Fx 类库的实现 Jscript Jscript编译器的实现 Pal Platform Adaptation Layer的实现。PAL是Rotor对Windows和Unix的些基本API的封装 Palrt Platform Adaptive Layer Runtime的实现。PAL中的和操作系统平台无关可重用的部分 prebuilt 存放着build所需的些事先用工具生成好的文件 Samples Samples Tests Regression Test Suite Tools Build工具,包括binplace, build, cppmunge等 Vscommon 公共头文件,主要是微软内部使用的些产品有关的公用的宏定义 总共大概有150MB左右。 本人先发在优快云上做个备份。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值