西安火车站到柞水溶洞:Symbian学习笔记(1):Debug On Device - SHARE & TOP ...

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 12:09:52
您还未登录!|登录|注册|帮助
CSDN首页 资讯 论坛 博客 下载 搜索 更多CTO俱乐部
学生大本营
培训充电
移动开发
软件研发
云计算
程序员
TUP
SHARE & TOP
我会变成童话里,你爱的那个天使
条新通知 登录 注册 欢迎 退出 我的博客 配置 写文章 文章管理 博客首页   全站 当前博客  空间 博客 好友 相册 留言 用户操作
[留言]  [发消息]  [加为好友] 
颜承ID:sharetop共151814次访问,排名858,好友36人,关注者183人。
---
颜承的文章
原创 80 篇
翻译 0 篇
转载 6 篇
评论 145 篇
订阅我的博客
    
 
 
 
[编辑]sharetop的公告
Android还是iPhone,这是一个问题…………
[编辑]文章分类
ALL IS JAVA
Android
Any.NET
BREW
Java@WORLD
Mobile@WORLD
Net@WORLD
Symbian
一家之言
[编辑]随笔
我的个人相册
存档
2011年03月(1)
2011年02月(1)
2010年12月(6)
2010年08月(2)
2010年02月(1)
2010年01月(1)
2009年12月(1)
2009年02月(1)
2009年01月(1)
2008年07月(2)
2008年06月(6)
2008年04月(7)
2008年03月(27)
2008年02月(6)
2008年01月(2)
2007年12月(11)
2004年03月(2)
2002年05月(1)
2002年03月(2)
2001年11月(1)
2001年06月(4)
公告: Bambook达人赛CSDN提交作品的来登记哦! [意见反馈][官方博客]   Symbian学习笔记(1):Debug On Device 收藏
在BREW的开发环境中,没有一个联机调试工具,一直是我觉得相当不方便的事情。在S60平台上做开发,至少这一点是能满足我们的需要。第一种方法:Carbide C++ v1.2 的 Debug On DeviceCarbide C++1.2的pro.以上版本都支持设备调试,实在是一件大快人心的事。要实现这个功能,也是相当的方便,当然前提是你用的是Carbide C++ v1.2的Pro.以上版本。按正常模式写程序,在模拟器上都弄的差不多了,想放到设备中调试的话,只需要做下面几步:
1、先在设备中安装一个软件,安装包在carbide的安装目录下,我机器上的位置是C:\Nokia\Carbide.c++ v1.2\plugins\com.nokia.carbide.trk.support_1.2.0.29\trk\s60,下面有两个 sis文件,因为我要在N73上调试,所以我选择其中的s60_3_0_app_trk_2_7.sisx这个,另一个3_1是用于3rd.FP1手机的。安装后在手机里就有一个TRK应用了。2、安装成功后,在手机上启动这个服务TRK,因为我是用的USB线,所以点选项,改成USB,端口是1(这里比较奇怪,明明我的端口应该是COM6)。启动后窗口显示:Status:Connected.3、在Carbide C++中,配置一下编译输出目标为Phone Debug(GCCE),这个很重要,只有DEBUG才行。编译出SISX文件。4、打开DEBUG窗口(即debug...),在配置中的第一项“Symbian OS App Trk“下建立一个新项。几个窗口的输入如下图所示:  5、点Apply,然后Debug,就可以启动调试。余下的事情与在模拟器中调试就一样了,没啥好说了。第二种方法:利用S60 SDK自带的Ecmt工具进行DEBUG如果我们用的是Carbide C++ 的Express版(免费版本)的话,我们没办法做设备联机调试,但是可以用SDK中的工具在程序中将调试信息打印到控制台上。在BREW平台上主要就是依靠这种方式。Symbian提供了一个REmct可以用于远程调试,并且它还提供了两个配套工具:手机端的ecmtagent_cpp.sis和PC端的Device Connection。这种方式比前一种要稍复杂一点了,因为涉及到代码的修改。1、首先同样是在手机上安装一个软件ecmtagent_cpp.sis(不过3rd.的SDK下这个东西不能用,说签名过期之类的错误,只能安装3rd. FP1的SDK下的那个同名sis,唉,也不知道Nokia是咋回事)。2、同样在调试前也是要启动手机上的ecmtagent代理,设置成USB连接(不需要选择端口了)。然后看到窗口上显示listening。3、在PC上启动那个Device Connection,选择COM6去connect它,状态成为connected。这时发现手机上也显示connected。表明连接成功了。在Device Connection中打开那个Diagnostics工具,所有的调试信息的就是输出到它的窗口里。4、最麻烦的是需要修改代码。A) 修改mmp,加上这个lib。即:LIBRARY        EcmtClient.libB)   在要输出调试信息的那个类的h文件中加上:
#ifdef _DEBUG
#include
#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,自己手工安装到手机里,执行它就可以了。要注意的一点是,因为此时前面的那个ecmtagent正在运行,需要将它切到后台去(不是关闭啊!!!)。在Diagnostics的窗口中就会看到输出的调试信息了。最后要补充一点的是,我在尝试这两种调试方法的时候,经常遇到打开端口失败或者连接失败的情况,一般重启一下手机就正常了,不知道是BUG呢还是因为我同时弄了两个代理在手机里照成的冲突,如果你在使用过程中发现不顺了,不妨也重启一下手机吧。 发表于 @ 2008年03月10日 13:54:00 | 评论( 3 ) | 编辑| 举报| 收藏 旧一篇:在BREW中打造自己的GUI(8)-IWEB的封装 | 新一篇:Symbian学习笔记(2):基本概念
查看最新精华文章 请访问博客首页相关文章 franksunny 发表于2008年4月17日 15:15:47  IP:举报回复删除
非常感谢你的指点
有个问题想问下,我采用第一种方式经常会出现死机现象,几乎是每调试一次就出现一次这样的问题我不知道是不是我在调试结束后的操作有关,我是先退出调试程序,然后退出TRK程序,就会出现死机,手机按键无效,连关机键好像也不能起作用,只好自己去拔插电板。sharetop 发表于2008年4月17日 16:07:30  IP:举报回复删除
回复 franksunny:我没有遇到这个现象,一般我也是先停止调试,然后再退出TRK的。你能确定是真死还是假死?我只是遇到这种方式有时手机反应相当慢的现象。
你换一个简单的程序来试试吧。
franksunny 发表于2008年5月6日 16:05:22  IP:举报回复删除
后来我换成了Carbide 1.3,没有出现过这种问题,谢谢作者的回复chen_hai_shan 发表于2010年7月19日 7:37:43  IP:举报回复删除
我怎么找都找不到trk啊!我找的路径是: C:\Program Files\Nokia\Carbide.c++ v2.3\plugins\com.nokia.carbide.trk.support_1.4.0.v200911050858_60 后面居然没有trk这个文件夹!还请你指点指点啊!发表评论 表 情:           评论内容:  用 户 名: 登录 注册 匿名评论 匿名用户验 证 码:   重新获得验证码    热门招聘职位【UC优视】UC浏览器,聘技术经理、高级工程师、产品经理【DeNA China】10K~30K月薪诚聘Android开发工程师【成都奥毕】诚聘软件开发工程师,高薪+奖金+优厚福利邀您共同发展【Red/SAFI】北京公司诚聘开发人员.net iPhone等【Google背景公司】年薪10万到30万急聘(C++linux、产品经理、java、UI设计)有期权!【上海博天】热聘JAVA网站客户端研发人员【中国领先手机游戏索乐公司】诚聘英才【上海杰图】诚聘中高级C++人才,待遇优、环境好、邀你共创美好未来!【北京东方国信】年薪4到25万诚聘JAVA程序员(初级、中级、高级、主管、部门经理)【诺姆四达EHR】高薪诚聘软件系统工程师、JAVA工程师、数据库工程师、测试工程师【E人E本】热招各类开发人才(Android、java、PHP),更多职位,点击进入【中国知网】高薪诚聘精英技术人才 【UC优视】UC浏览器,聘技术经理、高级工程师、产品经理【DeNA China】10K~30K月薪诚聘Android开发工程师【成都奥毕】诚聘软件开发工程师,高薪+奖金+优厚福利邀您共同发展【Red/SAFI】北京公司诚聘开发人员.net iPhone等【Google背景公司】年薪10万到30万急聘(C++linux、产品经理、java、UI设计)有期权!【上海博天】热聘JAVA网站客户端研发人员【中国领先手机游戏索乐公司】诚聘英才【上海杰图】诚聘中高级C++人才,待遇优、环境好、邀你共创美好未来!【北京东方国信】年薪4到25万诚聘JAVA程序员(初级、中级、高级、主管、部门经理)【诺姆四达EHR】高薪诚聘软件系统工程师、JAVA工程师、数据库工程师、测试工程师【E人E本】热招各类开发人才(Android、java、PHP),更多职位,点击进入【中国知网】高薪诚聘精英技术人才  公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告
北京创新乐知信息技术有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
江苏乐知网络技术有限公司 提供商务支持
 Email:webmaster@csdn.net
Copyright © 1999-2010, CSDN.NET, All Rights Reserved
  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sharetop/archive/2008/03/10/2163258.aspx