• <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++中,配置一下編譯輸出目標為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可以用于遠程調(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 郭天文 閱讀(1028) 評論(0)  編輯 收藏 引用 所屬分類: S60

            久久精品国产精品亚洲精品| 国产精品久久久久国产A级| 国产叼嘿久久精品久久| 久久精品国产亚洲一区二区三区| 久久亚洲国产精品123区| 77777亚洲午夜久久多喷| 高清免费久久午夜精品| 亚洲国产成人久久综合碰| 午夜欧美精品久久久久久久| 久久久精品一区二区三区| 久久久午夜精品福利内容| 91精品国产高清久久久久久io| 久久精品一区二区| 综合久久国产九一剧情麻豆 | 久久久久99精品成人片欧美 | 久久综合88熟人妻| 国产精品久久久久久久午夜片 | 亚洲精品美女久久久久99| 久久最新精品国产| 久久伊人五月丁香狠狠色| 99久久国产主播综合精品| 天堂久久天堂AV色综合| 久久天天躁狠狠躁夜夜av浪潮| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久精品成人欧美大片| 国产精品亚洲综合专区片高清久久久 | 国产 亚洲 欧美 另类 久久| 亚洲国产精品无码久久| 久久人人爽人人爽人人片av麻烦| 久久99国产精一区二区三区| 日产精品99久久久久久| 国产aⅴ激情无码久久| 精品国产乱码久久久久软件| 国内精品久久久久久久久 | 久久午夜无码鲁丝片| 久久精品中文无码资源站| 色偷偷88欧美精品久久久| 久久精品综合一区二区三区| 99久久精品日本一区二区免费| 色婷婷综合久久久久中文一区二区| 性高朝久久久久久久久久|