zoukankan      html  css  js  c++  java
  • Process Explorer for WinCE:揭示Windows CE系统运行时状态的强力工具

     这篇要介绍的是我自己写的一个用于监控Windows CE运行时系统状态的工具-Windows CE Remote Process Explorer。2004年我开始从事Windows CE平台的开发,之前我对Windows CE几乎一无所知,为了了解Windows CE的系统机制,我利用业余时间写了这个工具。到目前为止,它已经具有了相当多的功能,也帮我解决了很多工作上的问题。 简介如果你想监控CE下每个进程、线程的CPU使用率,或者想知道每个线程被什么模块什么时刻创建、线程当前的调用栈,或者想知道应用程序运行一段时间后进程堆的使用情况、内存碎片的分布,等等,这个工具都能给你直观的答案。
    Windows CE Remote Process Explorer(以后简称CE Process Explorer)是一个和Mark RussinovichProcess Explorer类 似的工具,只不过它应用于Windows CE系统。CE Process Explorer通过Platform Manager和Windows CE device建立连接,正如其名字所提示的,和Windows CE的Remote File Viewer一样,CE Process Explorer是一个Remote tool。其host端运行在PC上,通过TCP/IP等传输介质和device端通信,来揭示Windows CE的运行时系统状态。和Mark的Process Explorer侧重点不同的是,CE Process Explorer是为WinCE平台的开发人员设计的,更侧重于揭示系统的内部数据。
    支持平台目前CE Process Explorer支持ARM和X86(包括emulator)架构,MIPS和SH4架构我没用过,暂时不能支持。支持的目标操作系统包括Windows CE 4.x/5.0,对Windows CE 6.0的支持正在考虑中。 界面介绍如下图所示,类似于Process Explorer,主界面由上下两个View组成。上面的view显示Process列表,下面的view可以显示当前所选Process的Thread、Dll、Handle、Window、Heap或Memory信息。每个View都有对应的context menu,比如在进程view中你可以杀掉一个进程,在线程View中可以查看某个线程当前的调用栈。


    1,Process View。淡蓝色背景的进程为非ROM模块。


    2,Thread View。淡蓝色背景的线程为主线程。Thread View中可以看到每个thread是由哪个模块创建的,这对问题诊断是非常有帮助的。


    3,Handle View。


    4,DLL View。黄色背景的DLL为重定位过的DLL。


    5,Window View。淡蓝色背景的窗口为顶级窗口。


    5,Heap View。淡蓝色背景free内存块。


    7,Memory View。在Memory View中你可以看到整个系统的虚拟内存的布局,你可以找到哪些是Image文件映射,Thread Stack、Heap在什么地方,DLL加载在哪里等等。
    部分特色功能(Highlights)1,显示线程调用栈(call stack)。这是我最喜欢的功能之一。它可以在运行时显示任意线程的调用栈,观察线程的工作状态。在有debug symbol的情况下,可以直接定位到源代码行。



    2,应用程序的进程堆视图。可以让你时刻观察应用程序对堆的使用情况,红色部分为碎片。


    3,定位异常地址(Crash Finder)。应用程序崩溃是常有的事,这个功能让你可以从异常产生的地址直接定位到源代码行。

    Data Abort: Thread=87809d44 Proc=818a7b20 'INSTALLER.EXE'
    AKY=00000401 PC=00012548(INSTALLER.EXE+0x00002548) RA=00012530(INSTALLER.EXE+0x0
    0002530) BVA=16000000 FSR=00000007


    发表于 @ 2006年11月22日 18:02:00|评论(11 )|编辑
    旧一篇: 如何制作支持VMWare的Windows CE BSP 求职培训来这里,先就业后付款先就业,后付款 培训,找工作,跳槽来这里看看! SOA巧解传统IT架构复杂之痛 原有的业务流程已经远远不能满足业务需要 IT系统承载的负荷越来越重,多次发生系统宕机或故障
    评论#Leo 发表于2006-11-23 15:59:00  IP: 131.107.0.* 用platform builder不行吗?我记得platform builder好像还带了一套单独remote diagnostics的工具。#sting 发表于2006-11-23 17:29:00  IP: 57.72.66.* platform builder是debugger,这就好比说,我有windbg,还要Process Explorer干吗。设备不可能什么时候都连着platform builder,有的设备甚至没法连platform builder,再说这个工具有很多platform builder没有的功能。我也没见过有类似的remote tool。#Leo 发表于2006-11-24 05:16:00  IP: 71.112.42.* 了解。下次我用CE,向你讨份你的tool。#sting 发表于2006-11-25 11:29:00  IP: 58.33.175.* 没问题啊,要的时候找我好了。#stonexd 发表于2007-05-16 14:02:38  IP: 222.66.34.* 我下载了你的explorer,结果不能连接到设备,弹出一个对话框“Unable to instantiate platform manager”,这是什么错,而且点击configure window ce platform manager 没有反应。#qwm888 发表于2007-06-21 15:06:01  IP: 211.144.107.* 请问,你的这个工具怎么得到呀,我比较感兴趣。Thanks!#milong 发表于2007-09-15 17:43:06  IP: 219.128.254.* 我也想向你要一份,谢谢!
    marc4901@hotmail.com#walzer 发表于2007-09-28 15:00:18  IP: 202.101.103.* 无语了,这么强的工具. 楼主能否把这个工具发一份让我试用一下? walzer@163.com 交个朋友#fatlen 发表于2007-10-20 12:32:09  IP: 125.77.68.* 楼主,最近调试驱动代码,非常想试试看。
    可是一直不能下载啊,能否发一份给我呢,多谢了!
    fatlen@tom.com#singlerace 发表于2007-10-22 16:24:58  IP: 57.72.66.* 在我的CSDN个人空间里可以下载。#freasy 发表于2007-12-30 16:10:29  IP: 222.240.219.* 搞个CE 6.0的版本来玩玩
  • 相关阅读:
    mybatis四大接口之 ParameterHandler
    mybatis四大接口之 Executor
    网络协议
    4、Android UI测试
    3、Android构建仪表测试
    【翻译】Ext JS 6.2 早期访问版本发布
    2、Android构建本地单元测试
    1、Android测试入门
    安卓中的事件分发机制源码解析
    安卓IPC机制之Binder详解
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979259.html
Copyright © 2011-2022 走看看