Wybór podopcji kompilatora TEST lub NOTEST dla programów w języku COBOL
Należy określić kombinację opcji kompilatora TEST i podopcji kompilatora w celu utworzenia informacji debugowania potrzebnych do debugowania programu. W tym temacie założono, że program w języku COBOL jest kompilowany przy użyciu produktu Enterprise COBOL for z/OS®, wersja 6.2lub nowszego. Jednak tematy zawierają informacje o alternatywach dla starszych wersji kompilatora języka COBOL.
Kompilator języka COBOL udostępnia opcję kompilatora TEST i jej podopcje umożliwiające sterowanie następującymi działaniami:
- Generowanie danych debugowania.
- Umieszczenie informacji debugowania w obiekcie programu lub w oddzielnym pliku debugowania.
Poniższe instrukcje ułatwiają wybór kombinacji podopcji kompilatora TEST , które udostępniają funkcje potrzebne do debugowania programu:
- Z poniższej listy wybierz scenariusz debugowania z uwzględnieniem zasobów serwisu:
- Scenariusz A: w przypadku kompilowania przy użyciu produktu Enterprise COBOL for z/OS w wersji 6 wydanie 2 lub nowszej można uzyskać większość funkcji debugera z/OS za pomocą programu
TEST(SEPARATE/NOSEPARATE,SOURCE/NOSOURCE,EJPD). W przypadku produktu Enterprise COBOL for z/OS w wersji 6 wydanie 2 z zainstalowaną poprawką APAR PH04485 lub nowszą można podać wartośćSEPARATE(DSNAME). OpcjaDSNAMEnakazuje kompilatorowi zapisanie w obiekcie programu nazwy oddzielnego pliku debugowania , która jest nazwą zestawu danychSYSDEBUG DD.- W przypadku użycia opcji kompilatora
TEST(NOSEPARATE)dane debugowania są zapisywane w obiekcie programu w segmencie debugowaniaNOLOAD. Dane debugowania zawsze są zgodne z kodem wykonywalnym i są zawsze dostępne, dlatego nie ma potrzeby wyszukiwania pliku SYSDEBUG. Wielkość obiektu programu zwiększa się, ale nie zwiększa się ilość miejsca w pamięci, chyba że podczas debugowania wymagane jest załadowanie danych debugowania.Uwagi:- Nie należy używać instrukcji PAGE konsolidatora podczas wiązania obiektu programu, który zawiera więcej niż jeden program Enterprise COBOL for z/OS w wersji 5 lub nowszej, skompilowany z opcją kompilatora
TEST, w którym dane debugowania są zapisywane w obiekcie programu w segmencie debugowaniaNOLOAD. - Jeśli ma być używane debugowanie na poziomie kodu źródłowego, nie należy używać instrukcji PAGE konsolidatora podczas wiązania obiektu programu, który zawiera dowolny program w języku Enterprise COBOL for z/OS w wersji 6.2 lub nowszej skompilowany z opcją kompilatora TEST, w którym dane debugowania są zapisywane w obiekcie programu w segmencie debugowania
NOLOAD.
- Nie należy używać instrukcji PAGE konsolidatora podczas wiązania obiektu programu, który zawiera więcej niż jeden program Enterprise COBOL for z/OS w wersji 5 lub nowszej, skompilowany z opcją kompilatora
- W przypadku użycia opcji kompilatora
TEST(SEPARATE)dane debugowania są zapisywane w oddzielnym pliku debugowania. Kompilator używa instrukcjiSYSDEBUG DDdo określenia położenia oddzielnego pliku debugowania.- Dla produktu Enterprise COBOL for z/OS w wersji 6 wydanie 2 z zainstalowaną poprawką APAR PH04485 lub nowszą można podać parametr
SEPARATE(DSNAME), aby zapisać nazwę oddzielnego pliku debugowania w obiekcie programu. - Jeśli nie zostanie podana wartość
SEPARATE(DSNAME)lub położenie oddzielnego pliku debugowania uległo zmianie od czasu kompilacji, należy określić położenie oddzielnego pliku debugowania przy użyciu jednej z następujących metod. Debuger z/OS szuka osobnego pliku debugowania w następującej kolejności:- Komenda SET SOURCE służąca do określania dokładnego położenia oddzielnego pliku debugowania
- Program zewnętrzny
EQAUEDAT - SET DEFAULT LISTINGS command
- Nazwa
EQADEBUG DD EQA_DBG_SYSDEBUGzmienna środowiskowa
Jeśli używana jest procedura zewnętrzna systemu
EQAUEDAT, komenda SET DEFAULT LISTINGS , nazwaEQADEBUG DDlub zmienna środowiskowaEQA_DBG_SYSDEBUG, należy określić zestaw danych PDS lub katalog z/OS UNIX® System Services jako osobne położenie pliku debugowania.Jeśli używana jest komenda SET DEFAULT LISTINGS , nazwa
EQADEBUG DDlub zmienna środowiskowaEQA_DBG_SYSDEBUGi jeśli oddzielny plik debugowania nie zostanie znaleziony, ponieważ nazwa pliku nie jest zgodna z nazwą CU, debuger z/OS wykona wyczerpujące wyszukiwanie zestawów danych określonych za pomocą tej samej metody w celu znalezienia zgodnego pliku debugowania. Wyszukiwanie wyczerpujące może być powolne.
- Dla produktu Enterprise COBOL for z/OS w wersji 6 wydanie 2 z zainstalowaną poprawką APAR PH04485 lub nowszą można podać parametr
- W systemie
TEST(SOURCE)kompilator dołącza źródło programu do obiektu programu lub pliku SYSDEBUG jako część danych debugowania. Wszystkie pliki kopii zostaną rozwinięte. To rozwinięte źródło jest nazywane listingiem i jest używane do zapełniania okna Źródło w interfejsie użytkownika MIF lub widoku Listing , gdy używane jest Eclipse IDE. Jeśli używany jest systemTEST(NOSOURCE), kompilator nie dołącza źródła programu jako części danych debugowania, dlatego należy wskazać położenie pliku źródłowego debugowanego programu. Jest to obsługiwane tylko przez Eclipse IDE i jest używane w widoku Źródło . Więcej informacji na temat widoków w Eclipse IDEzawiera sekcja Praca z różnymi widokami debugowania. - Można połączyć opcję kompilacji
TEST(EJPD)z opcją kompilacjiOPT(1/2), aby umożliwić kompilatorowi optymalizację obiektu i nadal mieć dostęp do wszystkich funkcji debugowania. Aby uzyskać lepszą optymalizację obiektu, można użyć funkcjiTEST(NOEJPD). Jednak w przypadku optymalizacji niektóre zmienne mogą nie być poprawnie wyświetlane lub cel komendy JUMPTO lub GOTO może nie powieść się w niektórych scenariuszach. Jeśli nadal chcesz uzyskać lepszą wydajność obiektu, możesz wybrać opcjęNOEJPDi przejść bezpośrednio do środowiska produkcyjnego w celu debugowania.- W systemach
NOEJPD, GOTO i JUMPTO są wyłączone. Można je włączyć za pomocą komendySET WARNING OFFw wierszu komend interfejsu użytkownika MFI lub w konsoli debugowania środowiska Eclipse IDE.
- W systemach
- W przypadku użycia opcji kompilatora
- Scenariusz B: Jeśli konieczne jest debugowanie programów załadowanych do pamięci chronionej, należy sprawdzić, czy w serwisie zainstalowano autoryzowane narzędzie debugowania (Authorized Debug Facility).Aby debugować programy załadowane do pamięci tylko do odczytu, wykonaj następujące kroki:
- Użyj narzędzia Debugowanie dynamiczne , aby umieścić haki w programach, które rezydują w pamięci tylko do odczytu. Skontaktuj się z administratorem systemu, aby sprawdzić, czy zainstalowano narzędzie do autoryzowanego debugowania i czy masz uprawnienia do jego używania.
- Po uruchomieniu programu z/OS Debuggernależy sprawdzić, czy narzędzie Dynamic Debug nie zostało dezaktywowane, wprowadzając komendę
QUERY DYNDEBUG. - Sprawdź, czy oddzielny plik debugowania jest plikiem nietymczasowym i jest dostępny podczas sesji debugowania. Listing nie musi być zapisany.
Uwaga: Nie należy używać instrukcji PAGE konsolidatora podczas wiązania obiektu programu, który zawiera więcej niż jeden program Enterprise COBOL for z/OS w wersji 5 lub nowszej, skompilowany z opcją kompilatoraTEST, w którym dane debugowania są zapisywane w obiekcie programu w segmencie debugowaniaNOLOAD. - Scenariusz C: Jeśli użytkownik nie jest nowym użytkownikiem produktu z/OS Debugger i skompilował programy przy użyciu języka Enterprise COBOL for z/OS w wersji 4 lub wcześniejszej przy użyciu języka
NOTEST, a użytkownik nie chce rekompilować programów w celu użycia programu z/OS Debugger, można uzyskać większość funkcji debugowania, generując plik EQALANGX . Wymaga to debugowania programu w trybie języka COBOL LangX . Ta funkcja ułatwia migrację do zalecanych opcji kompilacjiTESTwe własnym tempie.Uwaga: Generowanie plików EQALANGX nie jest obsługiwane w przypadku produktu Enterprise COBOL for z/OS w wersji 5 lub nowszej. - Scenariusz D: Jeśli obiekt programu został skompilowany z opcją kompilatora
NOTESTi nie ma pliku EQALANGX , można uzyskać pewne funkcje debugowania, debugując program w trybie deasemblacji.Jeśli używane są inne narzędzia produktu Application Delivery Foundation for z/OS , Należy zapoznać się z tematem IBM® Application Delivery Foundation for z/OS Common Components Customization Guide and User Guide , który odpowiada używanemu kompilatorowi z poniższej listy, aby upewnić się, że określono wszystkie opcje kompilatora potrzebne do utworzenia plików wymaganych przez wszystkie narzędzia produktu Application Delivery Foundation for z/OS :- Programy w języku Enterprise COBOL for z/OS wersja 4
- Programy Enterprise COBOL for z/OS w wersji 3 oraz COBOL for OS/390® i VM
- COBOL dla programów MVS (tm) i VM
- Programy VS COBOL II
- Programy OP/VS w języku COBOL
- Scenariusz E: w przypadku kompilowania przy użyciu Enterprise COBOL for z/OS, Wersja 4można uzyskać większość funkcjonalności programu z/OS Debuger i małą wielkość programu za pomocą komendy
TEST(NOHOOK,SEPARATE). Jeśli konieczne jest debugowanie programów załadowanych do chronionej pamięci masowej, należy sprawdzić, czy w serwisie zainstalowano program Authorized Debug Facility.Aby kompilować program z opcją kompilatoraOPT(STD)lubOPT(FULL), należy również podać podopcjęEJPDopcji kompilatoraTEST, aby można było wykonywać następujące czynności:- Użyj komend
GOTOlubJUMPTO. - Zmodyfikuj zmienne z przewidywalnymi wynikami.
EJPDmoże spowodować utratę części optymalizacji.Aby uzyskać wszystkie funkcje debugera z/OS , ale mieć większy program i nie chcieć, aby informacje debugowania były w osobnym pliku debugowania, należy skompilować je z następującymi opcjami kompilatora:TEST(HOOK,NOSEPARATE)z produktem Enterprise COBOL for z/OS, wersja 4.TEST(ALL,SYM,NOSEPARATE)z dowolnym z następujących kompilatorów:- Enterprise COBOL for z/OS and OS/390, wersja 3, wydanie 2 lub nowsza
- Enterprise COBOL for z/OS and OS/390, wersja 3, wydanie 1 z poprawką APAR PQ63235
- COBOL for OS/390 & VM, wersja 2, wydanie 2
- COBOL for OS/390 & VM, wersja 2, wydanie 1 z poprawką APAR PQ40298
Jeśli używane są inne narzędzia produktu Application Delivery Foundation for z/OS , należy zapoznać się z informacjami w podręczniku IBM Application Delivery Foundation for z/OS Common Components Customization Guide and User Guide , aby upewnić się, że określono wszystkie opcje kompilatora potrzebne do utworzenia plików wymaganych przez wszystkie narzędzia produktu Application Delivery Foundation for z/OS .
- Użyj komend
- Scenariusz F: W przypadku kompilowania z jednym z następujących kompilatorów można uzyskać największą funkcjonalność produktu z/OS Debuger i małą wielkość programu za pomocą komendy
TEST(NONE,SYM,SEPARATE):- Enterprise COBOL for z/OS and OS/390, wersja 3, wydanie 2 lub nowsza
- Enterprise COBOL for z/OS and OS/390, wersja 3, wydanie 1 z poprawką APAR PQ63235
- COBOL for OS/390 & VM, wersja 2, wydanie 2
- COBOL for OS/390 & VM, wersja 2, wydanie 1 z poprawką APAR PQ63234.
Aby skompilować program z optymalizacją i uzyskać największą funkcjonalność produktu z/OS Debuger , należy skompilować go z jedną z następujących kombinacji opcji kompilatora:OPT(STD) TEST(NONE,SYM)OPT(STD) TEST(NONE,SYM,SEPARATE)OPT(FULL) TEST(NONE,SYM)OPT(FULL) TEST(NONE,SYM,SEPARATE)
Jeśli używane są inne narzędzia produktu Application Delivery Foundation for z/OS , należy zapoznać się z informacjami w podręczniku IBM Application Delivery Foundation for z/OS Common Components Customization Guide and User Guide , aby upewnić się, że określono wszystkie opcje kompilatora potrzebne do utworzenia plików wymaganych przez wszystkie narzędzia produktu Application Delivery Foundation for z/OS .
- Scenariusz G: jeśli używany jest system COBOL for OS/390 & VM, wersja 2 wydanie 1 lub wcześniejsze, a użytkownik chce uzyskać wszystkie funkcje produktu z/OS Debuger , należy użyć programu
TEST(ALL,SYM).Jeśli używane są inne narzędzia produktu Application Delivery Foundation for z/OS , Należy zapoznać się z tematem IBM Application Delivery Foundation for z/OS Common Components Customization Guide and User Guide , który odpowiada używanemu kompilatorowi z poniższej listy, aby upewnić się, że określono wszystkie opcje kompilatora potrzebne do utworzenia plików wymaganych przez wszystkie narzędzia produktu Application Delivery Foundation for z/OS :- Programy Enterprise COBOL for z/OS wersja 3 i COBOL for OS/390 i VM
- COBOL dla programów MVS (tm) i VM
- Programy VS COBOL II
- Programy OP/VS w języku COBOL
- Scenariusz A: w przypadku kompilowania przy użyciu produktu Enterprise COBOL for z/OS w wersji 6 wydanie 2 lub nowszej można uzyskać większość funkcji debugera z/OS za pomocą programu
- W przypadku programów w języku COBOL korzystających z systemu IMSnależy dołączyć moduł interfejsu IMS DFSLI000 z biblioteki IMS RESLIB.
- Sprawdź, czy należy wykonać jedną z następujących czynności:
- Jeśli parametr
NUMBERzostanie podany z wartościąTEST, należy upewnić się, że wszystkie pola sekwencji w kodzie źródłowym zawierają cyfry. - Należy podać podopcję
SYMopcji kompilatoraTEST, aby wykonać następujące działania:- Aby określić etykiety (nazwy akapitów lub sekcji) jako cele komendy
GOTO. - Do odwoływania się do zmiennych programu według nazwy.
- Aby uzyskać dostęp do zmiennej lub wyrażenia za pomocą komend, takich jak
LISTlubDESCRIBE. - Aby użyć podopcji
DATAkomendyPLAYBACK ENABLE.
SYMnależy określić w celu wykonania tych działań tylko w przypadku kompilowania z dowolnym z następujących kompilatorów:- Dowolna wersja produktu Enterprise COBOL for z/OS and OS/390, wersja 3
- Dowolna wersja produktu COBOL for OS/390 & VM, wersja 2
- Aby określić etykiety (nazwy akapitów lub sekcji) jako cele komendy
- Opcje kompilatora
TESTi środowiska wykonawczegoDEBUGwykluczają się wzajemnie, przy czym pierwszeństwo maDEBUG. Jeśli w akapicieSOURCE-COMPUTERzostanie podana zarówno klauzulaWITH DEBUGGING MODE, jak i instrukcjaUSE FOR DEBUGGINGw kodzie, wówczas opcjaTESTzostanie zdezaktywowana. Opcja kompilatoraTESTjest wyświetlana na liście opcji, ale generowany jest komunikat diagnostyczny informujący o tym, że z powodu konfliktu nie ma zastosowania opcjaTEST. - W przypadku programów w języku VS COBOL II, jeśli używana jest opcja kompilatora
TEST, należy określić:- Opcja kompilatora
SOURCE. Ta opcja jest wymagana do wygenerowania pliku listingu i zapisania go w położeniuuserid.pgmname.list. - Opcja kompilatora
RESIDENT. Ta opcja jest wymagana przez Language Environment ® , aby zapewnić dynamiczne ładowanie niezbędnych procedur z/OS Debugger w czasie wykonywania.
Ponadto należy połączyć program z biblioteką Language Environment
SCEELKED, a nie z biblioteką VS COBOL IICOB2LIB. - Opcja kompilatora
- Jeśli parametr
Po wybraniu opcji i podopcji kompilatora należy zapoznać się z sekcją Planowanie sesji debugowania , aby określić następną czynność, którą należy wykonać.
Więcej informacji na ten temat można znaleźć w następujących tematach.
- Informacje pokrewne
- Opis opcji kompilatora
TESTw podręczniku Enterprise COBOL for z/OS Programming Guide
W poniższej tabeli przedstawiono efekty działania opcji kompilatora NOTEST, opcji kompilatora TEST oraz niektórych podopcji opcji opcji kompilatora TEST na serwerze z/OS Debugger lub dostępność opcji, które nie zostały opisane w publikacji Enterprise COBOL for z/OS Programming Guide:
| Nazwa opcji lub podopcji kompilatora | Opis efektu |
|---|---|
| NIETEST |
|
| EJPD | Zmienne można modyfikować w zoptymalizowanym programie, który został skompilowany za pomocą jednego z następujących kompilatorów:
EJPD opcji kompilatora TEST . Jednak nie można modyfikować zmiennych, które zostały zadeklarowane z klauzulą VALUE w celu ich zainicjowania.
W przypadku kompilacji z podopcją |
| Następujące opcje są obsługiwane tylko w produkcie Enterprise COBOL for z/OS w wersji 4 i wcześniejszych: | |
| NOSYM, |
W przypadku kompilacji w języku Enterprise COBOL for z/OSw wersji 4 kompilator ignoruje kod Ta opcja nie jest dostępna w produkcie Enterprise COBOL for z/OS 5. |
| STMT |
W przypadku kompilowania z produktem Enterprise COBOL for z/OSw wersji 4 kompilator traktuje podopcję Ta opcja nie jest dostępna w produkcie Enterprise COBOL for z/OS 5. |
| Ścieżka |
W przypadku kompilowania z produktem Enterprise COBOL for z/OSw wersji 4 kompilator traktuje podopcję Ta opcja nie jest dostępna w produkcie Enterprise COBOL for z/OS 5. |
| blok |
W przypadku kompilowania z produktem Enterprise COBOL for z/OSw wersji 4 kompilator traktuje podopcję Ta opcja nie jest dostępna w produkcie Enterprise COBOL for z/OS 5. |
| WSZYSTKO |
W przypadku kompilowania z produktem Enterprise COBOL for z/OSw wersji 4 kompilator traktuje podopcję Ta opcja nie jest dostępna w przypadku produktu Enterprise COBOL for z/OS 5, ale po określeniu kompilacji TEST za pomocą tego kompilatora tworzony jest obiekt podobny do obiektu ALL z wyjątkiem tego, że haki wkompilowane są niedostępne. |