• <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>
            隨筆 - 2, 文章 - 73, 評論 - 60, 引用 - 0
            數(shù)據(jù)加載中……

            [S60]Symbian學(xué)習(xí)筆記:Debug On Device[轉(zhuǎn)]

            在BREW的開發(fā)環(huán)境中,沒有一個聯(lián)機調(diào)試工具,一直是我覺得相當(dāng)不方便的事情。在S60平臺上做開發(fā),至少這一點是能滿足我們的需要。

            第一種方法:Carbide C++ v1.2 的 Debug On Device

            Carbide C++1.2的pro.以上版本都支持設(shè)備調(diào)試,實在是一件大快人心的事。

            要實現(xiàn)這個功能,也是相當(dāng)?shù)姆奖?,?dāng)然前提是你用的是Carbide C++ v1.2的Pro.以上版本。

            按正常模式寫程序,在模擬器上都弄的差不多了,想放到設(shè)備中調(diào)試的話,只需要做下面幾步:
            1、先在設(shè)備中安裝一個軟件,安裝包在carbide的安裝目錄下,我機器上的位置是C:\Nokia\Carbide.c++ v1.2\plugins\com.nokia.carbide.trk.support_1.2.0.29\trk\s60,下面有兩個 sis文件,因為我要在N73上調(diào)試,所以我選擇其中的s60_3_0_app_trk_2_7.sisx這個,另一個3_1是用于3rd.FP1手機的。安裝后在手機里就有一個TRK應(yīng)用了。

            2、安裝成功后,在手機上啟動這個服務(wù)TRK,因為我是用的USB線,所以點選項,改成USB,端口是1(這里比較奇怪,明明我的端口應(yīng)該是COM6)。啟動后窗口顯示:Status:Connected.

            3、在Carbide C++中,配置一下編譯輸出目標(biāo)為Phone Debug(GCCE),這個很重要,只有DEBUG才行。編譯出SISX文件。

            4、打開DEBUG窗口(即debug...),在配置中的第一項“Symbian OS App Trk“下建立一個新項。幾個窗口的輸入如下圖所示:





            5、點Apply,然后Debug,就可以啟動調(diào)試。余下的事情與在模擬器中調(diào)試就一樣了,沒啥好說了。

            第二種方法:利用S60 SDK自帶的Ecmt工具進行DEBUG

            如果我們用的是Carbide C++ 的Express版(免費版本)的話,我們沒辦法做設(shè)備聯(lián)機調(diào)試,但是可以用SDK中的工具在程序中將調(diào)試信息打印到控制臺上。在BREW平臺上主要就是依靠這種方式。

            Symbian提供了一個REmct可以用于遠(yuǎn)程調(diào)試,并且它還提供了兩個配套工具:手機端的ecmtagent_cpp.sis和PC端的Device Connection。

            這種方式比前一種要稍復(fù)雜一點了,因為涉及到代碼的修改。

            1、首先同樣是在手機上安裝一個軟件ecmtagent_cpp.sis(不過3rd.的SDK下這個東西不能用,說簽名過期之類的錯誤,只能安裝3rd. FP1的SDK下的那個同名sis,唉,也不知道Nokia是咋回事)。

            2、同樣在調(diào)試前也是要啟動手機上的ecmtagent代理,設(shè)置成USB連接(不需要選擇端口了)。然后看到窗口上顯示listening。

            3、在PC上啟動那個Device Connection,選擇COM6去connect它,狀態(tài)成為connected。這時發(fā)現(xiàn)手機上也顯示connected。表明連接成功了。在Device Connection中打開那個Diagnostics工具,所有的調(diào)試信息的就是輸出到它的窗口里。

            4、最麻煩的是需要修改代碼。

            A) 修改mmp,加上這個lib。即:LIBRARY        EcmtClient.lib

            B)   在要輸出調(diào)試信息的那個類的h文件中加上:
            #ifdef _DEBUG
            #include 
            <EcmtClient.h>
            #endif

            ... ...
            class CDemoUIAppView : public CCoeControl,MBeating {
               ... ...
                
            private:
            #ifdef _DEBUG
                    REcmt iEcmt;
            #endif

            C)  然后在cpp中加上一個初始化與銷毀。
            void CDemoUIAppView::ConstructL( const TRect& aRect )
                
            {
                CreateWindowL();    
                
            ... ...
                
            #ifdef _DEBUG
                iEcmt.Connect();
             
            #endif
                
                }


            CDemoUIAppView::
            ~CDemoUIAppView()
                
            {
             ... ...
            #ifdef _DEBUG
                iEcmt.Close();
             
            #endif
                
                }

            D) 然后就是在需要輸出的地方這樣一下:
            void CDemoUIAppView::Beat()
                
            {
                    
            this->total++;
                    
            if(this->total>100)
                        
            {
                         
            this->total=0;
                         iHeart
            ->Cancel();
                        }

                    TBuf
            <16> buf;
                    buf.Format(KMsgFormat,
            this->total);
                    iLabel
            ->SetTextL(buf);
                    DrawNow();
                    
            #ifdef _DEBUG
                    iEcmt.WriteFormat(KFormattedText, 
            this->total);
            #endif

                }

            5、編譯程序,同樣是GCCE下的Phone Debug,自己手工安裝到手機里,執(zhí)行它就可以了。要注意的一點是,因為此時前面的那個ecmtagent正在運行,需要將它切到后臺去(不是關(guān)閉?。。。。?。在Diagnostics的窗口中就會看到輸出的調(diào)試信息了。

            最后要補充一點的是,我在嘗試這兩種調(diào)試方法的時候,經(jīng)常遇到打開端口失敗或者連接失敗的情況,一般重啟一下手機就正常了,不知道是BUG呢還是因為我同時弄了兩個代理在手機里照成的沖突,如果你在使用過程中發(fā)現(xiàn)不順了,不妨也重啟一下手機吧。

            posted on 2008-04-26 14:55 郭天文 閱讀(1045) 評論(0)  編輯 收藏 引用 所屬分類: S60

            99久久99久久精品国产片果冻| 无码8090精品久久一区| 精品久久久久久久无码 | 欧美精品福利视频一区二区三区久久久精品 | 久久se精品一区精品二区国产| 久久精品国产一区二区三区不卡 | 国产亚洲欧美精品久久久| 国产精品久久一区二区三区| 久久婷婷五月综合成人D啪| 国内精品久久久久影院薰衣草| 青青草国产精品久久| 久久精品国产2020| 久久久久九九精品影院| 成人免费网站久久久| 模特私拍国产精品久久| 亚洲午夜久久影院| 久久久精品国产sm调教网站| 久久黄视频| 久久99精品久久久久久齐齐| 精品综合久久久久久97超人| 久久久久久久久波多野高潮| 久久久久久国产精品美女| 丰满少妇高潮惨叫久久久| 日韩精品久久无码中文字幕| 久久久久亚洲爆乳少妇无| 久久午夜电影网| 久久免费精品视频| 国产日产久久高清欧美一区| 精品永久久福利一区二区| 亚洲国产另类久久久精品小说 | 99久久国产综合精品网成人影院| 久久人人爽人人爽人人片av高请| 99久久精品国产一区二区| 日产精品久久久久久久性色| 精品多毛少妇人妻AV免费久久| 精品久久久无码21p发布| 久久久久久国产精品无码下载| 久久这里的只有是精品23| 久久久久久久波多野结衣高潮 | 国产精品女同久久久久电影院| 久久午夜伦鲁片免费无码|