• <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, 評(píng)論 - 60, 引用 - 0
            數(shù)據(jù)加載中……

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

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

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

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

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

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

            2、安裝成功后,在手機(jī)上啟動(dòng)這個(gè)服務(wù)TRK,因?yàn)槲沂怯玫腢SB線,所以點(diǎn)選項(xiàng),改成USB,端口是1(這里比較奇怪,明明我的端口應(yīng)該是COM6)。啟動(dòng)后窗口顯示:Status:Connected.

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

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





            5、點(diǎn)Apply,然后Debug,就可以啟動(dòng)調(diào)試。余下的事情與在模擬器中調(diào)試就一樣了,沒(méi)啥好說(shuō)了。

            第二種方法:利用S60 SDK自帶的Ecmt工具進(jìn)行DEBUG

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

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

            這種方式比前一種要稍復(fù)雜一點(diǎn)了,因?yàn)樯婕暗酱a的修改。

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

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

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

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

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

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

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

            C)  然后在cpp中加上一個(gè)初始化與銷毀。
            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,自己手工安裝到手機(jī)里,執(zhí)行它就可以了。要注意的一點(diǎn)是,因?yàn)榇藭r(shí)前面的那個(gè)ecmtagent正在運(yùn)行,需要將它切到后臺(tái)去(不是關(guān)閉啊!!!)。在Diagnostics的窗口中就會(huì)看到輸出的調(diào)試信息了。

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

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

            亚洲av伊人久久综合密臀性色| 久久免费美女视频| 国产A级毛片久久久精品毛片| 亚洲人成网亚洲欧洲无码久久| 久久偷看各类wc女厕嘘嘘| 久久精品国产精品国产精品污| 久久www免费人成精品香蕉| 久久综合给合综合久久| 久久影院综合精品| 久久国产精品国语对白| 人人狠狠综合久久88成人| 亚洲国产精品久久久久| 国产偷久久久精品专区| 日日躁夜夜躁狠狠久久AV| a级毛片无码兔费真人久久| 久久精品极品盛宴观看| 久久久久久亚洲Av无码精品专口| 精品久久一区二区三区| 久久无码精品一区二区三区| 亚洲欧洲日产国码无码久久99| 伊人久久免费视频| 97精品依人久久久大香线蕉97| 久久99国产精品二区不卡| 国产精品一区二区久久精品无码 | 狠狠色丁香婷婷久久综合| 日韩精品久久久久久免费| 狠狠色丁香久久婷婷综合图片| 91精品观看91久久久久久| 久久久久久亚洲精品成人| 久久综合噜噜激激的五月天| 亚洲综合久久夜AV | 91精品国产高清久久久久久国产嫩草 | 老色鬼久久亚洲AV综合| 热久久国产欧美一区二区精品| 国产成人久久精品麻豆一区 | 三级片免费观看久久| 99久久婷婷国产综合精品草原 | 66精品综合久久久久久久| 久久久青草久久久青草| 久久精品中文字幕久久| 精品久久久久久久久中文字幕|