Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8200665
  • 博文数量: 1227
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 20273
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 12:40
文章分类

全部博文(1227)

文章存档

2010年(1)

2008年(1226)

我的朋友

分类: C/C++

2008-04-23 21:52:16

自编写CE进程查看程序

作者:

  在我以前所著文章《模拟器和远程调试工具(二)》中讲述了PB自带的远程调试工具"Remote Process Viewer"。利用这个工具可以在开发平台上查看实际平台上正运行的进程的一些信息,这些信息包括进程ID、句柄、基地址、包含的线程数量、以及每个线程的信息(如线程ID、线程优先级、访问键),另外还有整个进程加载的每个DLL的信息(DLL文件名、ID、使用计数、基地址、大小、路径等)。这个调试工具对于用模拟器调试程序,或者用串口、网卡连接实际平台调试程序来说非常有效。但是在有些情况下这个调试工具又显露出它的缺点。
  开发Windows CE下运行的软件没有必要时刻让开发平台和实际平台连接,毕竟不是所有程序、所有功能都需要单步跟踪或者实时查看内存变量状态。而要使用"Remote Process Viewer",就必须先将开发平台同实际平台连接起来,有时不但没必要,反而浪费时间。为此,我特意编写了一个类似"Remote Process Viewer"的调试工具,只不过把它的"Remote"去掉了。这个工具名为"CEInfo",在VCKBASE网站上可以找到,另外在VCKBASE出版的《VC知识库5周年精华珍藏版光盘》上也可以找到。因为我这里只有National x86 CPU,所以此软件是基于x86指令集编译的。可以运行在所有支持x86指令集的CPU上,包括PB的模拟器。下面图1是这个工具的主界面。


图1 CEInfo主界面

  本篇文章主要讲述进程查看程序利用的主要API--Toolhelp。Toolhelp API位于Toolhelp.DLL中。包含13个函数和5个结构体。利用这些函数你可以编写既适合自己需要,又适合自己实际平台的调试工具。具体函数声明如下表:
 

函数
阅读(365) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~