Symbian和C++ SDK開(kāi)發(fā)入門之運(yùn)行
兩個(gè)版本都叫做epoc.exe,但是它們位于自己的子目錄中。Epoc這個(gè)名字是歷史遺留的--它是Symbian OS以前的操作系統(tǒng)的名稱。
在正常的開(kāi)發(fā)活動(dòng)中,經(jīng)常使用模擬器的調(diào)試形式。根據(jù)你選擇的IDE,你可以正常地使用調(diào)試版本或在"調(diào)試模式"中使用調(diào)試版本。能夠在兩種模式下運(yùn)行同一個(gè)"調(diào)試模擬器"起初看起來(lái)有點(diǎn)混亂。
有時(shí)候你可能希望啟動(dòng)模擬器,定位應(yīng)用程序并運(yùn)行它,而這僅僅是為了測(cè)試的目的。如果出現(xiàn)了嚴(yán)重的錯(cuò)誤,模擬器和應(yīng)用程序?qū)⒁允艿郊s束的方式關(guān)閉。
還有些時(shí)候你可能希望在自己認(rèn)為存在問(wèn)題的特殊地方(代碼中)設(shè)置斷點(diǎn)(breakpoint),接著讓IDE在"調(diào)試模式"下運(yùn)行模擬器。接著你定位應(yīng)用程序并運(yùn)行它。與應(yīng)用程序適當(dāng)?shù)亟换ゲ僮鲗?huì)遇到代碼中的斷點(diǎn)。在斷點(diǎn)上,源代碼將顯示在IDE中,并且同時(shí)顯示與應(yīng)用程序相關(guān)的所有符號(hào)調(diào)試信息。接著你可以在受控制的情形下,使用IDE的調(diào)試特性一步一步地調(diào)試代碼片斷。你可以查看IDE顯示的應(yīng)用程序源代碼、數(shù)據(jù)、調(diào)用堆棧和其它與調(diào)試相關(guān)的信息,幫助自己跟蹤到代碼或邏輯中的錯(cuò)誤。
圖Series 60平臺(tái)1.2調(diào)試模擬器的應(yīng)用程序表格和列表視圖
圖微軟Visual C++ IDE下處于調(diào)試模式的HelloWorld應(yīng)用程序
模擬器可執(zhí)行文件位置
Series 60 1.2 SDK發(fā)布版模擬器典型情況下位于下面的位置:
對(duì)于Visual C++
\Symbian\6.1\Series60\Epoc32\Release\wins\urel\epoc.exe
對(duì)于Borland C++
\Symbian\6.1\Series60\Epoc32\Release\winsb\urel\epoc.exe
對(duì)于CodeWarrior
\Symbian\6.1\Series60\Epoc32\Release\winscw\urel\epoc.exe
調(diào)試版模擬器典型情況下位于:
對(duì)于Visual C++
\Symbian\6.1\Series60\Epoc32\Release\wins\udeb\epoc.exe
對(duì)于Borland C++
\Symbian\6.1\Series60\Epoc32\Release\winsb\udeb\epoc.exe
對(duì)于CodeWarrior
\Symbian\6.1\Series60\Epoc32\Release\winscw\udeb\epoc.exe
精確的路徑依賴于你在安裝SDK的時(shí)候選擇的選項(xiàng)。在Series 60 2.x SDK中模擬器的路徑將非常類似--例如\Symbian\Series602_0\Epoc32\release\wins\udeb\epoc.exe。
圖1-3顯示了Series 60 1.2模擬器。它啟動(dòng)時(shí)顯示應(yīng)用程序主菜單為表格視圖或列表視圖。
Series 60 2.0模擬器啟動(dòng)的外形類似電話應(yīng)用程序,你必須通過(guò)按下圖1-3所示的應(yīng)用程序按鈕導(dǎo)航到應(yīng)用程序菜單。無(wú)論使用哪種版本的Series 60平臺(tái),一般把模擬器可執(zhí)行文件的調(diào)試(udeb)版本作為開(kāi)發(fā)項(xiàng)目的默認(rèn)選項(xiàng)--例如\Epoc32\Release\wins\udeb \epoc.exe。
模擬器調(diào)試模式
在模擬器的調(diào)試模式下運(yùn)行應(yīng)用程序的時(shí)候,源代碼、函數(shù)調(diào)用堆棧、變量信息等在遇到代碼斷點(diǎn)的時(shí)候會(huì)立即顯示出來(lái),如圖1-4所示。如果應(yīng)用程序代碼沒(méi)有處在需要用戶輸入的位置,模擬器窗口本身可能消失了(它被最小化了)。
從命令提示符運(yùn)行模擬器
如果需要從命令行運(yùn)行調(diào)試模擬器,只需要打開(kāi)命令提示符,把當(dāng)前路徑改變到epoc.exe應(yīng)用程序所在的Series 60 SDK文件夾(例如\Symbian\6.1\Series60\Epoc32\Release\wins\udeb)并輸入下面的內(nèi)容:
epoc
上面的命令將啟動(dòng)調(diào)試模擬器,接著你可以定位并運(yùn)行自己的應(yīng)用程序了,但是它并非處于調(diào)試模式之中。要使被調(diào)試的應(yīng)用程序運(yùn)行在模擬器的調(diào)試模式之下只能從IDE內(nèi)部完成。如果要運(yùn)行發(fā)布版模擬器,需要輸入:
epoc -rel
在Visual C++ IDE中運(yùn)行模擬器
在Visual C++ IDE中你按下Ctrl+F5或從菜單中選擇Build|Execute Epoc.exe就可以啟動(dòng)模擬器的調(diào)試版本。這樣將使模擬器處于非調(diào)試模式。作為代替,按下F5或從菜單中選擇Build|Start Debug|Go將使模擬器處于調(diào)試模式。
當(dāng)你第一次運(yùn)行某個(gè)Visual C++項(xiàng)目的模擬器的時(shí)候,會(huì)出現(xiàn)一個(gè)對(duì)話框向你詢問(wèn)可執(zhí)行文件的名稱。請(qǐng)導(dǎo)航到SDK的根目錄的\Epoc32\Release\wins\udeb文件夾的epoc.exe文件。
在Borland C++Builder 6和C++BuilderX IDE中運(yùn)行模擬器
你可以使用Tools|Mobile Build Tools菜單選項(xiàng),選擇Run Emulator來(lái)啟動(dòng)模擬器的調(diào)試版本。或者使用Run|Run菜單選項(xiàng)(F9),但是它會(huì)引起項(xiàng)目每次都重新建立--而這花費(fèi)的時(shí)間可能很長(zhǎng)。使用這個(gè)選項(xiàng)的時(shí)候,你可能需要在模擬器啟動(dòng)之前終止建立對(duì)話框("Compiling")。
如果你在C++BuilderX中運(yùn)行模擬器,使用Run|Debug Project菜單選項(xiàng)或按下Shift+F9。如果你希望重新建立項(xiàng)目并啟動(dòng)模擬器,選擇Run|Run Project或按下F9。
在CodeWarrior IDE中運(yùn)行模擬器
選擇Project|Run菜單選項(xiàng)或按下Ctrl+F5運(yùn)行模擬器。按下F5或使用Project|Debug菜單選項(xiàng)使模擬器運(yùn)行在調(diào)試模式。
定位和運(yùn)行應(yīng)用程序
通過(guò)點(diǎn)擊模擬器的招牌位圖上的光標(biāo)鍵的圖片,或者使用PC鍵盤光標(biāo)(箭頭)鍵導(dǎo)航并選擇HelloWorld應(yīng)用程序。點(diǎn)擊"Selection"按鈕(在光標(biāo)控制鍵的中間)啟動(dòng)應(yīng)用程序。
注意
沒(méi)有特定圖標(biāo)的應(yīng)用程序(在.aif文件中指定)將會(huì)被賦予一個(gè)默認(rèn)的圖標(biāo),它看起來(lái)像一片鋸齒狀拼盤。
在某些SDK/IDE(例如Borland和CodeWarrior的一些版本)中,你建立的應(yīng)用程序可能位于"Other"文件夾下,而不在主桌面上。如果出現(xiàn)這種情況,請(qǐng)導(dǎo)航并選擇Other文件夾,接著通過(guò)點(diǎn)擊"Selection"按鈕打開(kāi)它。導(dǎo)航并選擇HelloWorld應(yīng)用程序并點(diǎn)擊"Selection"按鈕調(diào)用該應(yīng)用程序。
圖."HelloWorld"應(yīng)用程序
調(diào)試應(yīng)用程序
作為代替,你可以在IDE中使模擬器上運(yùn)行的應(yīng)用程序處于調(diào)試模式--這個(gè)過(guò)程驗(yàn)證依賴于使用的IDE。典型情況下,你需要首先在源代碼的適當(dāng)位置設(shè)置斷點(diǎn)。
啟動(dòng)處于調(diào)試模式的模擬器。由于要調(diào)試的是應(yīng)用程序(本質(zhì)上是動(dòng)態(tài)鏈接庫(kù)DLL),而不是模擬器本身,你需要導(dǎo)航并運(yùn)行應(yīng)用程序。該應(yīng)用程序?qū)?huì)啟動(dòng),碰到你設(shè)置的斷點(diǎn)的時(shí)候執(zhí)行會(huì)停止。接著你可以使用自己選擇的IDE工具逐步執(zhí)行應(yīng)用程序的源代碼。
更多的IDE幫助
本文沒(méi)有不同IDE功能的更多介紹,因此如果你要查詢更多的IDE幫助信息,可以通過(guò)Help菜單選項(xiàng)進(jìn)行。
對(duì)于微軟Visual C++,你可以選擇Help|Contents菜單選項(xiàng),它在與IDE一起安裝的MSDN中提供。
對(duì)于Borland C++Builder 6,你可以使用Help菜單選項(xiàng)。你會(huì)發(fā)現(xiàn)除了標(biāo)準(zhǔn)的Borland幫助文件之外還有一個(gè)獨(dú)立的Help|Borland C++ Mobile Edition Help頁(yè)面。對(duì)于C++BuilderX,你可以選擇Help|Help Topics,然后選擇Mobile Development。
對(duì)于Metrowerks CodeWarrior,有一個(gè)Help|Online Manuals菜單選項(xiàng),它包含了使用Symbian OS時(shí)大量的有價(jià)值的信息。
還有更多的特定IDE信息可以在線獲得--例如到http://msdn.microsoft.com/鏈接查找Visual C++信息,到http://bdn.borland.com/鏈接查找Borland C++信息,到http://www.metro-werks.com/MW/Develop/Wireless/鏈接查找CodeWarrior信息。
【編輯推薦】