Target Control是一种基于命令行的调试工具,在WinCE启动以后,可以在Platform Builder中启动Target Control,通过命令行来调试WinCETarget Control支持很多强大的命令,通过这些命令可以查看内存,启动进程等。

1. 配置Target Control

如果想在WinCE中支持Target Control功能,那么在编译WinCE系统之前要进行一些设置,首先在WinCE的组件中选择“Target ControlSupport”,如图:

WinCE Target Control调试介绍


默认情况下,Target Control调试是基于KITL的,所以要在菜单中选择“Project”,选择“Properties”,弹出属性对话框,然后选择“Build Options”,选择“Enable KITL”编译选项。


2. 启动Target Control

在重新编译WinCE系统之后,将WinCE p_w_picpath下载到目标板上并运行,等WinCE启动后,在VS2005的菜单中选择“Target”,然后选择“Target Control”会弹出一个命令行窗口,如图:

WinCE Target Control调试介绍


在命令行窗口中可以看到“Windows CE>”提示符,可以先键入问号(?)然后回车来查询目前所支持的命令。


3. Target Control命令


这里将对Target Control所支持的命令进行介绍:

?:列出所支持的命令

格式:?


dd打印某一段内存的数据

格式:dd Address [Size]

                   Address内存地址

                   Size内存大小


df将某一段内存的数据保存到文件

格式:df Filename Address Size

Filename文件名

Address内存地址

Size内存大小


Dis强迫操作系统交换出内存中所有丢弃的内存页

格式:Dis


gi获得进程及线程有关模块,临界区和事件的信息

格式:gi proc | thrd | mod | delta | all

proc列出系统中所有的进程

thrd列出系统中所有的线程

mod列出所有被加载的模块

delta列出随处理器时间变化的线程

all列出所有


Kp结束一个进程

格式:Kp Pid | Pindex

Pid进程的PID

Pindex进程的索引号,这个索引号是通过gi proc命令得到的


log显示和设置Celog事件跟踪子系统的区域

格式:log [logoption] [HexWindowsCEZone [ HexUserZone [ HexProcessMask ]]]

logoption手动设置Celog的信息

-bufsize用于CelogBuffer大小

-clear清除CelogBuffer

-flushFilename.logCelogBuffer中的数据存到文件中

HexWindowsCEZoneWinCE系统的Log区域掩码

HexUserZone用户定义的Log区域掩马

HexProcessMask需要被记录日志的进程


Mi显示内存信息

格式:Mi kernel | full

Kernel显示内核内存信息

full显示系统中所有进程的内存信息


prof控制kernel profiler,只有系统支持profiling功能时,该命令才有用

格式:prof on | off [ Datatype ] [ Storagetype ] [Otheroptions]

on启动kernel profiler

off停止kernel profiler

Datatype描述要收集的数据类型

-m收集蒙特卡洛profiling的相关数据

-s收集系统调用的相关数据

-k收集内核调用的相关数据

Storagetype如何存储收集的数据

-bBuffer的存储模式

-u不带Buffer的存储模式

-l发送数据到Celog事件跟踪子系统

Otheroptions设置如何收集数据

-bufsize设置CelogBuffer的大小

-clear清除CelogBuffer

-flushFilename.clg:停止kernel profiler,把数据存到文件中

-i控制profiler的采样时间


s启动一个进程

格式:s ProcessName

ProcessName进程的名字


run运行一个批处理文件

格式:run BatchFileName

BatchFileName:批处理文件名


win列出目前在目标设备上的显示的窗口列表

格式:win


priority改变shell线程的优先级

格式:priority [N]

N线程的优先级


suspend挂起设备

格式:suspend


tp设置或查询线程的优先级

格式:tp <tid> [prio]

tid线程的ID

prio线程的优先级


Break打断kernel debugger程序

格式:Break