You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Next »
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".
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 przyczyny
- 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:
mpiexec -n 4 ./mmult1_c.exe 1024
W celu jej zdebugowania wystarczy:
- załadować pakiet arm-forge
module add plgrid/tools/arm-forge
- skompilować program z flagą -g (symbole do debugu);
bez tej opcji debuger nie będzie wiedział która linia jest wykonywana, być może będą znane nazwy funkcji - zaleca się kompilację bez optymalizacji, tj. z flagą -O0;
przy włączonych optymalizacjach (-O2/-O3), informacje z debugera mogą być zaburzone - uruchomić program w ten sam sposób, dodając na początku komendy "ddt"
ddt mpiexec -n 4 ./mmult1_c.exe 1024
W okienku, które się pojawi, klikamy RUN.
Otworzy się wtedy właściwe GUI programu DDT, w którym będziemy wykonywać proces debugowania.
Podstawy korzystania
- breakpointy
- watchpointy
- stack trace - wielowątkowy (gdzie który proces/wątek)
- możliwość tworzenia grup (pasek na górze)
- widok "LOGu"
- podgląd wartości w danej linijce (wiele procesów)
- step, step into itp.
- restart, start, stop
Dodatkowe uwagi