现在的位置: 首页 > 综合 > 正文

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

2013年10月30日 ⁄ 综合 ⁄ 共 2008字 ⁄ 字号 评论关闭

.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
 

抱歉!评论已关闭.