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


  • No labels