青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

唐吉訶德

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  5 Posts :: 75 Stories :: 3 Comments :: 0 Trackbacks

常用鏈接

留言簿(2)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

WinCE的開發環境中支持Debug Zones功能,通常也被稱為調試域,通過它可以控制打印信息。當某個調試域被打開以后,在這個域中的打印信息就會被打印出來,如果某個調試域被關閉了,那么這個域中的打印信息就會被關閉。調試域是基于模塊的,也就是說一個模塊,可能是在一個驅動或者一個應用中都可以定義一個調試域,用來調試該模塊。一個調試域最多可以包括16個域,一般在每一個模塊中都會有一個全局變量dpCurSettings,該變量用于描述調試域的相關信息,它由一個模塊名字,16個域的名字和一個掩碼組成。下面具個例子:

DBGPARAM dpCurSettings =

{
    TEXT("PCIBUS"), {
    TEXT("Errors"),TEXT("Warnings"),TEXT("Functions"),TEXT("Initialization"),
    TEXT("Enumeration"),TEXT("Load Order"),TEXT("Resource"),TEXT("Undefined"),
    TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),
    TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined") },
    0x20

};

先來解釋一下DBGPARAM結構,該結構在Dbgapi.h中定義,所以在定義dpCurSettings的時候還需要包含這個頭文件,該結構定義如下:

typedef struct _DBGPARAM {

    WCHAR  lpszName[32];                    //模塊的名字

    WCHAR  rglpszZones[16][32];            //調試域的名字

    ULONG  ulZoneMask;                        //調試域的掩碼

}DBGPARAM, *LPDBGPARAM;

 

在上面的例子中可以看到,第一個是模塊的名字,叫PCIBUS。而后定義了16個域的名字,其中只用到了7個域,剩下的都定義為Undefined了。最后一個數字為域的掩碼,表示當前哪個域是被激活的,0x20表示只有第6個域是被激活的。從上面的例子還可以看出,前7個域是有意義的,而且按照順序分別對應17。下面針對這些域需要定義相應Debug調試的宏定義:

#define DBGZONE_ERROR                           1

#define DBGZONE_WARNING                     2

#define DBGZONE_FUNCTION                    3

#define DBGZONE_INIT                                4

#define DBGZONE_ENUM                            5

#define DBGZONE_LOADORDER                6

#define DBGZONE_RESOURCE                    7

 

上述宏定義對應在dpCurSettings中的7個域,然后就可以在打印信息的時候,通過這些宏定義來對應相應的調試域了。例如:

  1. while(1)
  2. {
  3.     if (dwFlag)
  4.     {
  5.          DEBUGMSG(DBGZONE_ERROR, (L"Error found: %d\r\n", NumDevKeys));
  6.          break;
  7.      }
  8.      else
  9.      {
  10.          DEBUGMSG(DBGZONE_WARNING, (L"Warning found\r\n"));
  11.      }
  12.      DEBUGMSG(DBGZONE_LOADORDER, (L"load in a while loop\r\n"));
  13.      Sleep(100);
  14. }
  15.  

從這段代碼可以看出,如果dpCurSettings中的掩碼定義為0x20,那么在DEBUGMSG的打印中,只有條件為DBGZONE_LOADORDER才會被打印,循環中的前兩個打印信息是不會被打印的。如果想讓上面的代碼中的所有DEBUGMSG都能打印必須設置掩碼如下:

dpCurSettings.ulZoneMask = DBGZONE_ERROR | DBGZONE_WARNING | DBGZONE_LOADORDER;

 

在一個模塊中定義了調試域,如果想在系統中去使用還必須注冊該調試域,需要用到的函數叫DEBUGREGISTER(..),其中要把該調試模塊的句柄作為參數傳給它。例如:

DllMain(..)

{

    switch(op)

    {

        case DLL_PROCESS_ATTACH:

            DEBUGREGISTER(hPCIBUS);

            break;

        ….

    }

}

 

完成了上述工作以后,就可以重新編譯調試的模塊,然后運行系統來調試了。調試域的一個好處就是在Debug的過程中,不需要終止系統可以動態的改變調試域,方便我們分析問題。首先,我們可以基于Platform. Builder中的CE Debug Zones來調試,在VS2005的菜單中選擇Target,然后選擇CE Debug Zones,如圖:

 

然后會出現一個Debug Zones的窗口,在窗口彈出以后,它可能會花一點時間來收集當前支持Debug Zone的模塊,如下圖:

 

該圖只是一個例子,左邊顯示了可調試的模塊,選擇serial_SMDK2410.dll這個模塊,就是S3C2410的串口驅動模塊。在右側可以看到各個調試域及名字,用戶可以根據需要來選擇打開和關閉相應的調試域,最后點擊ApplyOK就可以了。

 

當然,還有其他的方法來修改調試域,一種方法是使用Target Control中的zo命令來修改,Target Control將在以后介紹。還有一種方法就是通過SetDbgZone(..)函數來修改。定義如下:

BOOL SetDbgZone(DWORDdwProcid, LPVOIDlpvMod, LPVOIDbaseptr, DWORDzone, LPDBGPARAMlpdbgTgt)

    dwProcid    進程的句柄

    lpvMod        調試模塊的句柄

    baseptr        設置為NULL

    zone            新的調試域掩碼

    lpdbgTgt      返回新的DBGPARAM結構

 

上面對Debug Zone的定義,使用以及調試作了大致的介紹,按照上面的步驟可以給一個模塊添加調試域,注冊調試域并在系統運行以后隨時更改調試域,其根本目的無非是幫助我們來調試模塊和分析問題。一般情況下,調試域只在Debug模式下使用,但是也可以在Release模式下使用。但是有些地方需要修改,首先前面已經介紹過Debug模式下的打印用DEBUGMSG,而Release模式下的打印應該使用RETAILMSG函數。所以在Release模式下,打印函數應該改為RETAILMSG函數。還有在注冊調試域的時候,不能再使用DEBUGREGISTER(..)函數,而是應該改用RETAILREGISTERZONES(..)函數。


posted on 2011-02-28 16:18 心羽 閱讀(380) 評論(0)  編輯 收藏 引用 所屬分類: wince
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜视频一区| 久久综合伊人77777| 亚洲一二三四久久| 亚洲精品美女久久7777777| 久久国产精品99国产精| 亚洲在线一区二区三区| 亚洲电影视频在线| 欧美不卡高清| 亚洲国产精品毛片| 亚洲国产经典视频| 欧美日韩国产在线播放网站| 国产精品久久久久永久免费观看| 久久精品国产清自在天天线| 久久久精品五月天| 久久精品国产91精品亚洲| 国产亚洲精品久久久久久| 午夜亚洲激情| 欧美中文在线免费| 免费欧美电影| 国产精品欧美一区二区三区奶水| 亚洲国产婷婷香蕉久久久久久| 亚洲精品综合精品自拍| 久久国产精品久久久| 国产精品久久久99| 亚洲性感激情| 久久久久国产精品厨房| 欧美日韩国语| 国产一区二区按摩在线观看| 欧美gay视频激情| 国产精品视频男人的天堂| 亚洲福利视频免费观看| 亚洲欧美日韩精品一区二区| 免费高清在线视频一区·| 亚洲伊人伊色伊影伊综合网| 欧美一级淫片aaaaaaa视频| 欧美了一区在线观看| 亚洲国产日韩欧美一区二区三区| 亚洲精品一区二区三区樱花| 欧美国产日韩亚洲一区| 国产精品成人免费| 欧美福利一区| 欧美精品日韩三级| 亚洲欧美日本精品| 亚洲午夜电影| 欧美日韩综合网| 久久久夜夜夜| 美国十次成人| 亚洲影院在线观看| 亚洲一区二区欧美| 99精品国产99久久久久久福利| 亚洲日本在线观看| 亚洲国产欧美在线| 亚洲视频免费在线| 国产在线一区二区三区四区| 亚洲国产精品久久久久秋霞蜜臀| 亚洲第一综合天堂另类专| 亚洲国产精品传媒在线观看| 老司机一区二区三区| 在线视频中文亚洲| 免费在线观看日韩欧美| 在线视频亚洲| 欧美日韩一区二区三区四区五区 | 亚洲激情成人在线| 亚洲欧美日韩天堂一区二区| 亚洲精品免费网站| 欧美日韩免费观看一区三区| 亚洲黄网站在线观看| 亚洲精品中文字幕在线| 亚洲激情成人在线| 裸体歌舞表演一区二区| 一区二区欧美视频| 欧美激情亚洲| 亚洲免费播放| 久久视频精品在线| 久久人人爽爽爽人久久久| 亚洲性视频h| 欧美激情第三页| 国产精品v欧美精品v日韩| 亚洲三级国产| 最新热久久免费视频| 久久精品久久综合| 中文精品视频| 久久这里只有| 一区二区三区欧美视频| 免费成人高清视频| 欧美高潮视频| 亚洲国产成人av在线| 久久久www成人免费毛片麻豆| 久久国产精品一区二区| 亚洲午夜免费福利视频| 欧美日韩精品欧美日韩精品一| 午夜精品电影| 欧美色图首页| 欧美日本一道本在线视频| 亚洲欧洲av一区二区| 欧美在线视频二区| 99re成人精品视频| 亚洲国产精品一区二区第四页av | 国产精品久久777777毛茸茸| 亚洲国产精品成人精品| 日韩视频精品在线| 亚洲黄色在线| 欧美日韩在线免费| 亚洲一区欧美一区| 欧美国产一区二区三区激情无套| 亚洲免费成人av| 欧美三级乱码| 久久精品免费播放| 午夜精品久久久久久久男人的天堂 | 亚洲欧美文学| 一区二区三区中文在线观看 | 一区二区欧美视频| 国产午夜精品全部视频在线播放| 国产综合一区二区| 亚洲精品日韩在线| 国产伦精品一区二区三区| 欧美电影在线免费观看网站| 欧美国产日本韩| 欧美一区二区大片| 久久综合久久美利坚合众国| 一区二区精品在线| 欧美一区二区日韩| 亚洲精品孕妇| 午夜欧美精品久久久久久久| 亚洲国产成人久久| 亚洲精品视频免费观看| 欧美经典一区二区三区| 麻豆91精品| 欧美午夜宅男影院在线观看| 久久人人爽爽爽人久久久| 欧美久久一级| 毛片av中文字幕一区二区| 这里只有视频精品| 亚洲国产精品成人一区二区| 亚洲第一页在线| 夜夜嗨av色综合久久久综合网| 久久久亚洲成人| 亚洲婷婷国产精品电影人久久| 亚洲精品欧洲| 激情五月综合色婷婷一区二区| 久久精品视频播放| 欧美另类综合| 亚洲国产精品久久| 狠狠88综合久久久久综合网| 久久久久久久久伊人| 亚洲影院一区| 国产一区美女| 亚洲一区二区黄色| 亚洲精选中文字幕| 亚洲欧洲精品一区二区三区不卡 | 另类春色校园亚洲| 午夜精品久久久久久久久| 女人香蕉久久**毛片精品| 老鸭窝毛片一区二区三区| 影音先锋另类| 欧美一区不卡| 免费成人黄色片| 狠狠色香婷婷久久亚洲精品| 久久精品午夜| 欧美+日本+国产+在线a∨观看| 免费在线观看精品| 日韩亚洲国产精品| 欧美日韩在线第一页| 欧美激情亚洲| 亚洲天堂av在线免费观看| 欧美性久久久| 欧美一区永久视频免费观看| 亚洲欧美在线一区二区| 国产在线乱码一区二区三区| 欧美一级片在线播放| 欧美www在线| 91久久国产综合久久| 亚洲欧美日韩一区二区| 亚洲欧美精品suv| 欧美www在线| 亚洲视频图片小说| 国产精品日韩专区| 久久这里只有| 亚洲欧洲综合另类在线| 一本色道婷婷久久欧美| 国产精品高潮呻吟久久av黑人| 国产精品高精视频免费| 亚洲综合欧美| 欧美性事在线| 久久99伊人| 亚洲高清不卡| 亚洲视频 欧洲视频| 国产精品视频一区二区三区| 亚洲精品一区二区三区99| 久久久亚洲一区| 国产精品v欧美精品v日韩精品 | 久久精品一区二区三区不卡| 韩国福利一区| 欧美黄色免费| 亚洲欧美激情一区| 一区二区欧美精品| 国产日韩欧美在线| 欧美jizzhd精品欧美喷水| 亚洲精品免费在线观看| 国产精品视频一|