...
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 |
---|
|
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???)