Jeśli chcemy produkować wysokiej jakości nasze Oracle BRM oprogramowanie, musimy spełnić pewne wymagania dotyczące naszego procesu rozwoju. Szczególnie ważne jest włączenie dobrych technik testowania i debugowania do naszego procesu rozwoju.
Testowanie to proces wyszukiwania błędów w oprogramowaniu, który jest wykonywany ręcznie przez testera lub może być zautomatyzowany.
Debugowanie to proces znajdowania i rozwiązywania defektów lub problemów w programie komputerowym, które uniemożliwiają prawidłowe działanie oprogramowania komputerowego lub systemu. Zasadniczo jest to proces naprawiania błędów znalezionych w fazie testowania. Programista lub deweloper jest odpowiedzialny za debugowanie i nie można go zautomatyzować.
Debugowanie niestandardowego kodu operacyjnego polityki Oracle BRM
Podczas dostosowywania kodów operacyjnych polityki w Oracle BRM Często zachodzi potrzeba debugowania kodu w celu znalezienia potencjalnych błędów lub przeanalizowania zachowania kodu. Niektóre podstawowe analizy można wykonać za pomocą rejestrowania niektórych komunikatów debugowania i analizowania dzienników, ale znacznie bardziej zaawansowaną i potężną metodą jest użycie oddzielnego narzędzia - debuggera. W tym artykule przyjrzymy się, w jaki sposób możemy użyć debuggera GDB do debugowania procesu cm Oracle BRM, który wykonuje również niestandardowy kod (patrz rysunek poniżej).
GDB to debugger o otwartym kodzie źródłowym, który zapewnia wiele zaawansowanych i potężnych narzędzi do analizy i debugowania naszego kodu. Niektóre z podstawowych funkcji GDB to punkty przerwania (warunkowe / bezwarunkowe), zegarki, ślady wsteczne i przyrostowe wykonywanie kodu. Oczywiście można również przeglądać i modyfikować wartości zmiennych oraz wywoływać różne funkcje. Przyjrzyjmy się teraz, jak w praktyce używamy GDB z procesem cm.
Debugowanie w praktyce
Najpierw musimy uzyskać PID naszego procesu CM:
ps x
Proszę znaleźć PID procesu CM i użyć go do połączenia się z tym procesem za pomocą GDB:
gdb cm
Teraz otwiera się powłoka GDB, w której możemy wykonywać różne polecenia obsługiwane przez GDB. Każde nowe połączenie nawiązane z CM powoduje odrodzenie nowego procesu potomnego CM z macierzystego CM. Chcemy, aby GDB śledził również takie procesy potomne. Proszę wykonać następujące polecenie w powłoce GDB:
(gdb) set follow-fork-mode child
W zależności od potrzeb mogą Państwo również chcieć zbadać polecenia set detach-on-fork i attach. Teraz ustawmy punkt przerwania na implementację kodu operacyjnego polityki, jak w poniższym przykładzie:
(gdb) break fm_act_pol_post_reauthorize.c:192
Gdy teraz uruchomimy wykonywanie kodu polityki, zostanie ono przerwane przez breakpoint (lub nawet wcześniej powiadomi nas, że pojawiło się nowe dziecko). Następnie możemy śledzić przepływ kodu krok po kroku za pomocą poleceń next (abbr. n) lub step. Jeśli interesuje nas jakaś wartość zmiennej, możemy ją wypisać za pomocą:
Do Państwa dyspozycji jest również wiele bardziej zaawansowanych i potężnych funkcji, które zostały szczegółowo opisane w dokumentacji GDB i zintegrowanej pomocy. Zachęcamy do zapoznania się z nimi i sprawdzenia, w jaki sposób mogą one Państwu pomóc.





