在BREW的开发环境中,没有一个联机调试工具,一直是我觉得相当不方便的事情。在S60平台上做开发,至少这一点是能满足我们的需要。 第一种方法:Carbide C++ v1.2 的 Debug On Device Carbide C++1.2的pro.以上版本都支持设备调试,实在是一件大快人心的事。 要实现这个功能,也是相当的方便,当然前提是你用的是Carbide C++ v1.2的Pro.以上版本。 按正常模式写程序,在模拟器上都弄的差不多了,想放到设备中调试的话,只需要做下面几步: 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.lib B) 在要输出调试信息的那个类的h文件中加上: ... ... CDemoUIAppView::~CDemoUIAppView() } 最后要补充一点的是,我在尝试这两种调试方法的时候,经常遇到打开端口失败或者连接失败的情况,一般重启一下手机就正常了,不知道是BUG呢还是因为我同时弄了两个代理在手机里照成的冲突,如果你在使用过程中发现不顺了,不妨也重启一下手机吧。 (落鹤生) |