Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
outlinetrue
stylenone

...

Wprowadzenie do Arm DDT

Poniższy opis ma na celu wprowadzenie do DDT: dać ogląd jego funkcjonalności i umożliwić szybkie rozpoczęcie korzystania z tego narzędzia. Aby lepiej zrozumieć różne możliwości i nabrać biegłości, trzeba samemu zacząć stosować w myśl "praktyka czyni mistrza"DDT to debugger, umożliwiający wykrywanie błędów, przerywanie działania programu, wykonywanie kodu krok po kroku, podglądanie wartości zmiennych, stosu wywołań funkcji itp., dostosowany do pracy z aplikacjami rozproszonymi i wielowątkowymi.

Kiedy używać DDT (wskazówki)?

  • jeśli w trakcie wykonania, program przerywa swoje działanie i kończy się niespodziewanym błędem
  • jeśli program się zawiesza
  • jeśli otrzymujemy niepoprawne wyniki i chcemy dociec ich przyczynypoznać przyczynę
  • jeśli chcemy prześledzić działanie kodu

Korzystanie z debuggera ma największy sens gdy posiadamy dostęp do kodu źródłowego.

Jak uruchomić DDT?

Rozważmy przykładową aplikację, uruchamianą pod MPI:

...

Otworzy się wtedy właściwe GUI programu DDT, w którym będziemy wykonywać proces debugowania.

...

Podstawowe funkcjonalności

...

  • watchpointy
  • stack trace - wielowątkowy (gdzie się znajduje który proces/wątek)
  • możliwość tworzenia grup procesów (pasek na górze)
  • breakpointy
  • watchpointy
  • ewaluacja wyrażeń
  • widok "LOGu" (zapis pracy debuggera)
  • input i output programu
  • podgląd wartości w danej linijce (wiele / podgląd zmiennych lokalnych (zestawienie z wszystkich procesów)
  • kontrola wykonania programu (start, stop, step, step into itp., restart, start, stop...)

Dodatkowe uwagi

  • user guide, https://developer.arm.com/docs/101136/2001/ddtUser Guide (strona Arm),
  • DDT z opcją offline, umożliwia wykonanie kodu pod kontrolą debuggera, bez interakcji użytkownika; może to mieć zastosowanie gdy chcemy wykonać kod i podglądnąć wartości w konkretnym miejscu, albo gdy aplikacja kończy się błędem tylko raz na jakiś czas (wtedy spośród wielu wykonań, to które zakończy się błędem dostarczy nam informacji o błędzie); wartości zapisane w raporcie, odpowiadają temu co pojawia się w "Logbook"
Code Block
languagebash
ddt --offline=debug-report.html  --break-at=<file>:<line>   (...command...)
  • opcja attach, umożliwia podpięcie się do już uruchomionego procesu (podając jego PID); bardzo wygodnie można to zrobić z poziomu GUI programuDDT oferuje opcję attach (podpięcie do uruchomionego procesu)
  • w DDT można otwierać pliki core-dumpjak GDB (jakiś link do tutorialu???)