Programowanie w Javie



Podobne dokumenty
Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe zastosowanie języka Java SE

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Programowanie obiektowe

Zaawansowane aplikacje WWW - laboratorium

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

Java jako język programowania

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

WPROWADZENIE DO JĘZYKA JAVA

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Programowanie Obiektowe GUI

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Wprowadzenie do środowiska Qt Creator

Projektowanie aplikacji internetowych laboratorium

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Spis treści JĘZYK C - ŚLEDZENIE WYKONANIA PROGRAMU, DEBUGGER. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Laboratorium 01: Poznanie środowiska programowania w języku Java [2h]

Db4o obiektowa baza danych wersja.net

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Załącznik 1 instrukcje instalacji

Podręczna pomoc Microsoft Power Point 2007

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Zaawansowane aplikacje internetowe

Języki i metody programowania Java Lab2 podejście obiektowe

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Aplikacje internetowe i rozproszone - laboratorium

Programowanie Systemów Wbudowanych

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Załącznik 1 instrukcje instalacji

Multimedia JAVA. Historia

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Diagnostyka pamięci RAM

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Visual Basic Debugging and Error Handling

Sprawdzanie połączenia sieciowego

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Program APEK Użytkownik Instrukcja użytkownika

ApSIC Xbench: Szybki start wydanie Mariusz Stępień

Informatyka II. Laboratorium Aplikacja okienkowa

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa

Kolory elementów. Kolory elementów

Zaawansowane aplikacje internetowe - laboratorium

Ćwiczenie 1. Przygotowanie środowiska JAVA

C++ - [1-3] Debugowanie w Qt Creator

Instrukcja do ćwiczeń

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

1.Wstęp. 2.Generowanie systemu w EDK

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Zadanie 1. Stosowanie stylów

Przedszkolaki Przygotowanie organizacyjne

Tablet bezprzewodowy QIT30. Oprogramowanie Macro Key Manager

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Wypełnianie protokołów w USOSweb. Instrukcja dla osób prowadzących zajęcia dydaktyczne.

Aplikacje w środowisku Java

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Instrukcja użytkownika

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

APLIKACJE WCHODZĄCE W SKŁAD PAKIETU MS OFFICE DLA UŻYTKOWNIKÓW DOMOWYCH

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Aplikacje WWW - laboratorium

Katalog książek cz. 2

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

Skrócona instrukcja funkcji logowania

Programowanie Systemów Czasu Rzeczywistego

Obszar Logistyka/Zamówienia Publiczne

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Moduł rozliczeń w WinSkład (od wersji 18.40)

Rozdział 2. Debugowanie kodu

PRZEWODNIK PO ETRADER ROZDZIAŁ XII. ALERTY SPIS TREŚCI

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Zastosowanie komponentów EJB typu Session

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Programowanie zespołowe

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Transkrypt:

Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student powinien umieć samodzielnie obsługiwać narzędzie i wykonywać podstawowe instrukcje służące prześledzeniu wykonywania kolejnych etapów programu jak i warunkowego zatrzymania wykonywania programu oraz śledzenia zmian wartości obserwowanych zmiennych. Dzięki czemu student powinien umieć odnajdywać błędy zarówno skutkujące przerwaniem programu jak i błędy skutkujące niepoprawnym wynikiem zwróconym przez program. Laboratorium powstało w oparciu o instrukcję na stronie http://www.vogella.de/articles/eclipsedebugging/article.html. 1. Przygotowanie do ćwiczenia. 1.1. Przed ćwiczeniem należy sprawdzić ustawienia interaktywnej pomocy pakietu Eclipse, to jest konfigurację dokumentacji dla biblioteki rt.jar (Properties). Jeśli będzie to konieczne, to ustawić ścieżki do pliku ze źródłami JRE oraz dokumentacją API (Javadoc). Przykładowe ustawienia dla źródła (source): D:/java/src.zip ustawienie dla Javadoc z Internetu: http://download.oracle.com/javase/6/docs/api/ Deklaracje danego typu lub funkcji można podglądać za pomocą klawiszy Shift+F2 (Navigate/Open External Javadoc), a źródło przyciskając prawym klawiszem myszy i wybierając opcję Open Declaration. 1.2. Sprawdzić ustawienia zmiennych środowiskowych (CLASSPATH). 1.3. Ustawić ścieżkę dla generatora dokumentacji Javadoc. W tym celu w oknie Window/Preferences, w podkatalogu Javadoc należy wpisać ścieżkę do generatora Javadoc np. D:\java\bin\javadoc.exe. 2. Przebieg Ćwiczeń. Utworzyć nowy projekt Java (File->New-> Project Java Project) o nazwie "de.vogella.debug.first". Utworzyć nowy pakiet (package) "de.vogella.debug.first" w projekcie. Następnie utworzyć w pakiecie klasy Counter, Main o poniższej zawartości: package de.vogella.debug.first; public class Counter { private int result=0; public int getresult() { return result; public void count() { for (int i = 0; i < 100; i++) { result += i +1;

package de.vogella.debug.first; public class Main { /** * @param args */ public static void main(string[] args) { Counter counter = new Counter(); counter.count(); System.out.println("We have counted " + counter.getresult()); 3. Debugowanie 3.1. Ustawianie punktów stopu (Breakpoints). Aby ustawić punkt wstrzymania wykonywania należy kliknąć prawym przyciskiem myszy w wąskim pasku po lewej stronie edytora kodu i wybrać opcję toggle breakpoint, lub dwukrotnie kliknąć w żądanym miejscu. 3.2. Uruchamianie Odpluskwiacza Aby debugować aplikację należy wybrać plik, który zawiera metodę main poprzez kliknięcie prawym przyciskiem myszy i wybranie opcji Debug As -> Java Application.

Wskazówka Jeśli nie zostały ustawione żadne punkty stopu program wykona się normalnie. Aby debugować program należy zdefiniować punkty wstrzymania wykonania (breakpoints). Przy pierwszy uruchomieniu debuggera, środowisko Eclipse zapyta się czy zmienić perspektywę (widok układ okien) środowiska na tryb debugowania (aby przełączać się pomiędzy perspektywami należy skorzystać z przycisków w prawym górnym rogu środowiska). Po zatwierdzeniu zmiany widoku układ okien środowiska powinien wyglądać jak na poniższym zdjęciu:

Można używać skrótów F5 / F6, F7 i F8 aby prześledzić wykonywanie kodu. Table 1.Skróty klawiszowe debugowania skrót F5 F6 F7 F8 opis Kolejny krok wykonywania programu. Jeśli kolejnym krokiem w programie jest metoda/funkcja skrót wywoła instrukcję wewnątrz kodu danej metody (należy pamiętać o dodaniu źródeł bibliotek wbudowanych w celu śledzenia ich wykonywania). F6 omija śledzenie wykonywania kodu (step over) wywoływanej w danym kroku metody/funkcji. F7 wykonuje powrót do funkcji która wywołała śledzoną w danej chwili metodę. Spowoduje to zaprzestanie śledzenia wykonywania aktualnie metody. Skrót F8 powoduje przejście do koljnego punktu stopu. W przypadku braku kolejnego punktu stopu spowoduje do normalne (nie debugowane) wykonanie aplikacji aż do jej zakończenia. Odpowiedniki przedstawionych skrótów można znaleźć na interfejsie środowiska: 3.3. Stos Aktualny stos wykonywanego programu jest wyświetlony w zakładce Debug.

3.4. Zmienne Widok "Variables" wyświetla pola oraz zmienne lokalne dla obecnie podglądanego stosu. Aby wyświetlić zmienne statyczne należy użyć menu podręcznego: Poprzez menu można spersonalizować wyświetlane kolumny: Bardzo przydatną funkcją jest opcja "New Detail Formater" dzięki której można zdefiniować w jaki sposób zmienne są wyświetlane. Dla przykładu obiekt counter jest opisany nic nie mówiącym adresem w pamięci np. "de.vogella.debug.first.counter@587c94" (wynik działania domyślnego wywołania metody tostring()). Możemy zmienić wartość wyświetlaną poprzez menu podręczne i opcję "New Details Formater".

Poprzez sprecyzowanie opisu dla danego obiektu możemy ustawić aby wyświetlała się w trybie debuggera interesująca nas wartość odpowiadająca obiektowi. 4. Zaawansowane debugowanie. 4.1. Pominięcie wszystkich punktów wstrzymania. Aby tymczasowo dezaktywować wszystkie punkty wstrzymania, można użyć opcji "Skip all breakpoints", która znajduje się na zakładce punktów zatrzymania. Anulować opcję tą można poprzez ponowne kliknięcie przycisku.

4.2. Właściwości punktów wstrzymania. Po ustawieniu punktu wstrzymania w kodzie można zmienić jego właściwości. Dla przykładu można ustawić kiedy punkt wstrzymania ma być uwzględniany. W ustawieniach można na przykład ograniczyć wstrzymywanie wykonania w danym miejscu gdy dana linijka kodu zostanie wykonana 12 razy (Hit Count). Dodatkowo można wprowadzić instrukcje warunkowe ułatwiające debugowanie.

4.3. Punkt obserwacji (Watchpoint) Punktem obserwacji jest to rodzaj punktu wstrzymania dzięki któremu można śledzić zmiany lub odczyty zmiennych lub pól klas. Aby ustawić punkt obserwacji poprzez podwójne kliknięcie na polu po lewej stronie od deklaracji pola. Poprzez menu właściwości można zdefiniować czy wykonanie powinno być wstrzymywane przy odczycie (Field Access) czy modyfikacji pola (Field Modification). 4.4. Punkt wstrzymania przy wystąpieniu wyjątku (Exception Breakpoint) Zastosowaniem tego rodzaju wstrzymania jest wstrzymanie wykonywania kodu przy wystąpieniu konkretnego wyjątku. Dodanie tego rodzaju punktu wstrzymania wykonuję się poprzez przycisk na pasku narzędzi: Można zdefiniować punkt wstrzymania zarówno przy wyjątkach przechwytywanych jak i nie przechwytywanych. 4.5. Punkt wstrzymania przy wywołaniu metody (Method Breakpoint). Ustawianie wstrzymania dokonuję się również poprzez podwójne kliknięcie przy nagłówku metody którą chcemy obserwować. Można zdefiniować czy wykonanie ma być wstrzymane przy wywoływaniu metody czy przy powracaniu do funkcji wywołującej.

4.6. Punkt wstrzymania przy ładowaniu klasy (Class breakpoint). Tego rodzaju wstrzymanie jest wykonywane przy załadowaniu konkretnej klasy. Aby dodać należy kliknąć prawym przyciskiem myszy na nazwie klasy w zakładce Outline i wybrać opcję "Toggle Class Load Breakpoint".

4.7. Liczba wykonań (Hit Count) Dla każdego punktu wstrzymania można ustawić właściwość liczby wykonań. Kiedy właściwość jest ustawiona wykonanie kodu zostanie wstrzymane w momencie osiągnięcia ustawionej wartości wykonań danego fragmentu kodu dla którego jest ustawiony punkt wstrzymania. 4.8. Ponowne uruchamianie fragmentu kodu (Drop to frame) Eclipse pozwala na wybór dowolnego punktu wykonywania programu (frame) ze stosu wykonywania kodu i ustawienie wirtualnej maszyny javy do ponownego rozpoczęcia wykonywania kodu dla wybranego punktu. Pozwala to na wielokrotne uruchamianie części napisanego kodu. UWAGA!!! Zmienne nie są resetowane. Jeśli wartości zmiennych zostały zmodyfikowane to podczas ponownego wykonywania żądanego fragmentu kodu, program będzie korzystać z zmodyfikowanych wartości zmiennych lub wartości zawartych w bazie danych itp. Aby skorzystać z tej funkcji należy wybrać żądane wywołanie w stosie oraz skorzystać z przycisku na pasku narzędzi: