poniedziałek, 7 grudnia 2009

Debugowanie aplikacji Symbiana w komórce.

Bardzo ważną cechą w pracy programisty jest umiejętność używania debugera, tak żeby można było na bieżąco sprawdzać działanie programu. W środowisku Carbide.C++ można sprawdzać działanie programu na 2 sposoby: w emulatorze i na komórce. Najbardziej polecam sprawdzanie działanie programu bezpośrednio w komórce podczas gdy Carbide.C++ będzie informować o procesie debugowania.

Najpierw trzeba w swojej komórce zainstalować program App TRK którzy będzie przesyłał informacje do Carbide.C++ . Trzeba zwrócić uwagę na to, żeby pobrać wersję która będzie zgodna z komórką którą będziemy debugować aplikację. Na przykład dla 5800 XM pobieramy s60_5_0_app_trk_3_1_2.sisx.

Instalujemy App TRK w komórce (najczęściej za pomocą Nokia PC Suite). Komórka ma być połaczona kablem USB. Uruchamiamy App TRK w komórce. Wybieramy lewym softem menu Opcje -> Setting. Pojawi się wybór Connect to ustawiamy na USB. Komórka jest podłączona kablem USB to z Opcje wybieramy Connect. Pojawi się na wyświetlaczu komunikat Status Connected Connection:USB.

Uruchamiamy Carbide C++. Importujemy projekt E:\S60\devices\S60_5th_Edition_SDK_v1.0\S60CppExamples\helloworldbasic
Podczas wyboru SDK wybieramy Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]. Po zaiportowaniu widzimy że mamy aktywny projekt Z menu Carbide.C++ wybieramy Project -> Properties. Pojawi się okno Properties for helloworldbasic. Z węzła Carbide.C++ wybieramy Build Configurations. Widzimy aktywną konfigurację na Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]. W zakładce "SIS Builder" klikamy w Add. Pojawi się okno SIS Propories Z PKG File wybieramy sis\helloworldbasic_gcce.pkg. Upewniamy się że mamy zaznaczone Self sign sis file Klikamy w OK. Potem w przycisk Apply a następnie w OK. Więc już projekt mamy przygotowany do kompilacji.
Zanim weźmiemy się do kompilacji trzeba będzie zmienić w pliku sis\helloworldbasic_gcce.pkg
..\..\..\epoc32\release\gcce\urel\HelloWorldBasic.exe na ..\..\..\epoc32\release\gcce\udeb\HelloWorldBasic.exe
Zresztą pliki z SDK i tak muszą wymagać odpowiedniego przygotowania skryptów do instalacji. Po prostu trzeba wskazać gdzie kompilator umieścił wersję debugowaną.

Kompilację wykonuje się prosto. Z menu Carbide wybieram Project -> Build Project. Obserwujemy w oknie konsoli (Window -> Show View -> Console) komunikaty podczas kompilacji.

Następnie otwieramy plik src/helloworldbasicappui.cpp i przy linii 140 dla kodu
case EHelloWorldBasicCommand1:
stawiamy czujkę

Następnie z menu Run -> Debug As -> Debug Symbian OS Application. Może sie pojawić okno
"Application TRK Launch Configuration" > "Next" wybieramy połączenie USB Klikamy w Next to wstedy pojawi się USB Setting. Sprawdzamy czy Serial Port jest w liście rozwijanej nazwa komórki, w moim przypadku jest to COM7 Nokia 5800 XpressMusic USB Z listy rozwijanej Service OS wybieramy S60 5.0.0 Klikamy w Initiate Service testing i sprawdzamy czy doszło do połączenia. Pojawi się komunikat że mamy poprawna wersje zainstalowaną.

Z menu Run -> Debug powoduje otwarcie obszaru roboczego poświęconego debugowaniem. Carbide .C++ dokonuje kompilacji, pakowania w plik instalacyjny oraz instaluje w komórce i uruchamia w komórce. Gdy w uruchomionym programie w komórce uruchomię w menu to program zatrzyma się a w debugerze pokaże to że program zatrzymał się tam gdzie była postawiona czujka.
W obszarze roboczym debugowania w zakładce Debug warto używać przycisku StepOver (F6) pozwala to na prześledzenie krok po kroku działania programu. Natomiast w zakładce Variables śledzimy jak zachowują się zmienne. A dla odważnych polecam zakładkę Dissasembly, żeby nauczyć się asemblera ARM.

QtCreator 1.3 też ma możliwość pracy z App TRK. Upewniamy się że App TRK jest w komórce uruchomiony na USB. Uruchamiamy QtCreatora. w menu Narzędzia -> Opcje... uruchomi się okno Opcje. Wchodzimy w węzeł SDK S60 i sprawdzamy jakie mamy zainstalowane SDKi i czy są przypisane do odpowiedniego SDK Qt4.6

A więcej to można obejrzeć na tym filmie z Youtube

Brak komentarzy: