рдЙрд╕ рд▓рд╛рдЗрди рдХреЛ рдХреИрд╕реЗ рдЦреЛрдЬрд╛ рдЬрд╛рдП рдЬрд┐рд╕рдореЗрдВ рдореЗрдирдлреНрд░реЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реАрдИрдИ рдбрдВрдк рд╕реЗ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдП

рдПрдХ рдмрд╛рд░ рдЬрдм рдореБрдЭреЗ C ++ рдореЗрдВ рдореЗрдирдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреА рдереА, рдФрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА рдХрд┐ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдП рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╣рд╛рдВ рдХреНрд░реИрд╢ рд╣реБрдЖ рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИред рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдЬреЛ рд╕рдм рдХреБрдЫ рдпреВрдПрд╕рдПрд╕ рдореЗрдВ z / OS рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рддрд╣рдд рдореЗрдирдлреНрд░реЗрдо рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдПрдХ рддрд░рдл, рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдИрдмреАрдПрдо рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдпрд╣ рд╕рдм рдЦреЛрдЬрдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо HLASM рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдореИрдВ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╕реАрдИрдИ рдбрдВрдк рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд░реЗрдЦрд╛ рдХреЛ рдХреИрд╕реЗ рдвреВрдВрдвреЗрдВред

рдиреАрдЪреЗ рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд▓реЙрдиреНрдЪ рд╣реЛрддреЗ рд╣реА рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд┐рд░ рдЬрд╛рдПред рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рд░реНрдп рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рддреБрд░рдВрдд рдвреВрдВрдврдирд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдкрд░ рдЖрдирд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╣реБрдд рдмрдбрд╝реЗ рдФрд░ рд▓рдВрдмреЗ рд╣реЛрддреЗ рд╣реИрдВред

int f1(int a, char *b) { char *value = 0L; value[0] = '\0'; return(0); } int main() { f1(1, ""); return(1); } 


рдПрдХ рд▓рд╛рдЗрди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

1. рдмрд┐рдирд╛ XPLINK рдХреЗ
 c++ -Wc,list'(t1.list)' -c t1.C c++ -o t1 t1.o 


2.рд╕реА XPLINK
 c++ -Wc,xplink -Wc,list'(t2.list)' -c t1.C c++ -Wl,xplink -o t2 t1.o 


рдХреБрдВрдЬреА рд╣реИ -Wc, list '(t1.list)', рдпрд╣ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреЛ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред
рдореЗрдХрдлрд╛рдЗрд▓ рдореЗрдВ, рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
 # Here is where we get convlit(iso8859-1) and __LIBASCII # XCCFLAGS = $(CCFLAGS_ASCII) -Wc,list'($*.list)' XCPPFLAGS = $(CPPFLAGS_ASCII) -Wc,list'($*.list)' 


рд╕реА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐, рд╕реА ++ рдореЗрдВ рджреВрд╕рд░реАред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдПрдВ, рдиреАрдЪреЗ рдПрдХ рдбрдВрдк рдФрд░ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред

 /u/mddegt/sb/omni/cpp/test:>t1 CEE3204S The system detected a protection exception (System Completion Code=0C4). From entry point f1(int,char*) at compile unit offset +0000002A at entry offset +0000002A at address 1000A95A. Segmentation fault /u/mddegt/sb/omni/cpp/test:>t2 CEE3204S The system detected a protection exception (System Completion Code=0C4). From entry point f1(int,char*) at compile unit offset +00000016 at entry offset +00000016 at address 100063D6. Segmentation fault 


рдпрджрд┐ рдЖрдк рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо f1 рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдСрдлрд╕реЗрдЯ рд╣реИред рдЕрдм рд╣рдореЗрдВ рдПрдХ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рдереА (t1.list, t2.listред XPLINK рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП T1 рдФрд░ XPLINK рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП t2)ред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ, рд╣рдо рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ рдерд╛ред

1. рдмрд┐рдирд╛ XPLINK рдХреЗ

 15694A01 V1 R6 z/OS C++ t1.C: f1(int,char*) 02/14/06 15:42:32 3 OFFSET OBJECT CODE LINE# FILE# PSEUDOASSEMBLYLISTING 000001 | * void f1(); 000002 | * 000003 | * int f1(int a, char *b) f1(int,char*) 000018 000003 | DS 0D 000018 47F0 F001 000003 | B 1(,r15) 00001C 01C3C5C5 CEE eyecatcher 000020 000000C8 DSA size 000024 000000D8 =A(PPA1-f1(int,char*)) 000028 5050 D028 000003 | ST r5,40(,r13) 00002C 5850 D04C 000003 | L r5,76(,r13) 000030 End of Prolog 


2. XPLINK рдХреЗ рд╕рд╛рде

 15694A01 V1 R6 z/OS C++ t1.C: f1(int,char*) 02/14/06 16:02:24 3 OFFSET OBJECT CODE LINE# FILE# PSEUDOASSEMBLYLISTING 000001 | * void f1(); 000002 | * 000003 | * int f1(int a, char *b) 000018 @1L0 DS 0D 000018 00C300C5 =F'12779717' XPLink entrypoint marker 00001C 00C500F1 =F'12910833' 000020 00000090 =F'144' 000024 00000088 =F'136' f1(int,char*) 000028 000003 | DS 0D 000028 9067 4788 000003 | STM r6,r7,1928(r4) 00002C End of Prolog 


рдкрд╣рд▓рд╛ рдХреЙрд▓рдо рдСрдлрд╕реЗрдЯ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреАрд╕рд░рд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рдирдВрдмрд░ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, XPLINK рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рддреБрд░рдВрдд рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдСрдлрд╝рд╕реЗрдЯ 000018 рдорд┐рд▓рд╛, рдФрд░ XPLINK рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рд╣реЗрдбрд░ (рдиреАрд▓рд╛) рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдФрд░ рдпрд╣ рдСрдлрд╝рд╕реЗрдЯ 000028 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╛рд░реА рдХреА рдЧрдгрдирд╛ рдХреАред рдЕрдм рдЖрд░рдВрднрд┐рдХ рдСрдлрд╝рд╕реЗрдЯ рдореЗрдВ рдЙрди рдСрдлрд╕реЗрдЯ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬрд╣рд╛рдВ рд╣рдорд╛рд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рд╕рднреА рдЧрдгрдирд╛ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд░реВрдк рдореЗрдВ рд╣реИрдВред

рез.рез 1. + реи рдП = рекреи
реи.реи 3 + резрем = рей рдИ

рдЕрдм рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рдпрд╣ рдЙрд╕ рд▓рд╛рдЗрди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рдЧрд┐рд░ рдЧрдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рддрдХ рдиреАрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рд╣рдо рдкрд░рд┐рдгрд╛рдореА рдСрдлрд╕реЗрдЯ рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд▓реЗрддреЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
1. рд╕реНрд░реЛрдд рдЙрд╕ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рддреЗ рд╕рдордп рдерд╛ред
2. рдХрд╣реАрдВ рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдЧрдгрдирд╛рдУрдВ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдЧрд▓рддреА рдХреА рдФрд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЧрд┐рдирд╛ред
3. рд╣рдордиреЗ рдЖрдо рддреМрд░ рдкрд░ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдерд╛ред

1ред
  000034 5020 50C0 000003 | ST r2,b(,r5,192) 000004 | * { 000005 | * .char *value = 0L; 000038 4110 0000 000005 | LA r1,0 00003C 1821 000005 | LR r2,r1 00003E 5020 50C4 000005 | ST r2,value(,r5,196) 000006 | * .value[0] = '\0'; 000042 9200 2000 000006 | MVI (char)(r2,0),0 000007 | * .return(0); 000008 | * } 000046 000008 | @1L6 DS 0H 

2ред
  000030 5020 4844 000003 | ST r2,b(,r4,2116) 000004 | * { 000005 | * .char *value = 0L; 000034 4130 0000 000005 | LA r3,0 000038 1813 000005 | LR r1,r3 00003A 5010 47E0 000005 | ST r1,value(,r4,2016) 000006 | * .value[0] = '\0'; 00003E 9200 1000 000006 | MVI (char)(r1,0),0 000007 | * .return(0); 000008 | * } 000042 000008 | @1L6 DS 0H 

рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рд╣реА рд▓рд╛рдЗрди рдирдВрдмрд░ рдорд┐рд▓рд╛ред 6. рдЕрд╕реЗрдВрдмрд▓рд░ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдП рдмрд┐рдирд╛, рд╣рдо 3 рдХреЙрд▓рдо рдореЗрдВ рд▓рд╛рдЗрди рдирдВрдмрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, 000006ред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЗрд╕ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрд░реЛрдд рдкрд░ рдЬрд╛рдКрдВрдЧрд╛ред

рдЖрдЧреЗ рдореИрдВ XPLINK рдХреЗ рдмрд┐рдирд╛ рдФрд░ XPLINK рдХреЗ рд╕рд╛рде 2 рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдореИрдВ рдЦреБрдж рдХреЛ рдкрд╣рд▓реЗ рддрдХ рд╕реАрдорд┐рдд рдХрд░реВрдВрдЧрд╛ред

рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдбрд░ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдерд╛ рдЬреЛ рдЕрдзрд┐рдХ рдерд╛ (рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ), рддреЛ рдпрд╣ рд╕реАрдИрдИ рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреА рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реАрдИрдИ рдбрдВрдк рдЦреЛрд▓реЗрдВ рдФрд░ рдкрд╣рд▓реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВред

  Traceback: DSA Addr Program Unit PU Addr PU Offset Entry E Addr E Offset Statement Load Mod Service Status 10020CF0 CEEHDSP 046C0B00 +000048DA CEEHDSP 046C0B00 +000048DA CEEPLPKA UK10749 Call 100202B0 1000A930 +0000002A f1(int,char*) 1000A930 +0000002A *PATHNAM Exception 10020210 1000A968 +0000006E main 1000A968 +0000006E *PATHNAM Call 100200F8 044EFCB6 +000000B4 EDCZMINV 044EFCB6 +000000B4 CEEEV003 Call 10020030 CEEBBEXT 046C69E8 +000001A6 CEEBBEXT 046C69E8 +000001A6 CEEPLPKA HLE7709 Call 

рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рд╣рдо рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬрд╣рд╛рдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рдПрдирд░рд┐рдЯреА рдХреЙрд▓рдо рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо, рдФрд░ рдСрдлрд╕реЗрдЯ рдЬрд┐рд╕рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдИ рдСрдлрд╝рд╕реЗрдЯ рдХреЙрд▓рдо рдореЗрдВ рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ред

рдЙрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рд╣рдо рдлрд╝рдВрдХреНрд╢рди (рдПрдВрдЯреНрд░реА рдХреЙрд▓рдо) рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдвреЗрд░ рджреЗрдЦрддреЗ рд╣реИрдВред рдЗрд╕реА рддрд░рд╣, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕ рд▓рд╛рдЗрди рдореЗрдВ рдХреЙрд▓ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред

рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХрд╣рд╛рдВ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CEE рдбрдВрдк рдореЗрдВ рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рджреЗрдЦреЗрдВ (Z / OS рдХреЗ рд▓рд┐рдП рдХреЛрдбрд╛рдВрддрд░рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдСрдкрд░реЗрд╢рди рдХреЗ рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓, рдЕрдзреНрдпрд╛рдп 7 рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

  000006 | * .value[0] = '\0'; 000042 9200 2000 000006 | MVI (char)(r2,0),0 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдирд┐рд░реНрджреЗрд╢ 0 рд╕реЗ рдкрддрд╛ (r2 + 0) рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рд╢реВрдиреНрдп рдХреЗ рдмрдЬрд╛рдп, рдХреЛрдИ рдЕрдиреНрдп рдСрдлрд╕реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ 0. рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдЖрд░ 2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реАрдИрдИ рдбрдВрдк рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдФрд░ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдкреНрд░рд┐рдВрдЯрдЖрдЙрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

  Condition Information for Active Routines Condition Information for (DSA address 100202B0) CIB Address: 10021630 Current Condition: CEE3204S The system detected a protection exception (System Completion Code=0C4). Location: Program Unit: Entry: f1(int,char*) Statement: Offset: +0000002A Machine State: ILC..... 0004 Interruption Code..... 0004 PSW..... 078D1400 9000A95E GPR0..... 100087E8 GPR1..... 00000000 GPR2..... 00000000 GPR3..... 00000001 GPR4..... 1000A9A8 GPR5..... 100202B0 GPR6..... 1000AAAC GPR7..... 1000A0F0 GPR8..... 00000030 GPR9..... 80000000 GPR10.... 844EFCAA GPR11.... 846C69E8 GPR12.... 1001A7D0 GPR13.... 100202B0 GPR14.... 9000A9D8 GPR15.... 1000A930 FPC...... 00000000 FPR0..... 4DBE5D7C A198209F FPR1..... 00000000 00000000 FPR2..... 00000000 00000000 FPR3..... 00000000 00000000 FPR4..... 00000000 00000000 FPR5..... 00000000 00000000 FPR6..... 00000000 00000000 FPR7..... 00000000 00000000 FPR8..... 00000000 00000000 FPR9..... 00000000 00000000 FPR10.... 00000000 00000000 FPR11.... 00000000 00000000 FPR12.... 00000000 00000000 FPR13.... 00000000 00000000 FPR14.... 00000000 00000000 FPR15.... 00000000 00000000 Storage dump near condition, beginning at location: 1000A94A +000000 1000A94A 50BC5020 50C04110 00001821 502050C4 92002000 5850D028 47F0E004 070747F0 |&.&.&.......&.&Dk....&...0.....0| 

рдпрд╛ рдЕрднреА рднреА рдЖрдЧреЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

  f1(int,char*) (DSA address 100202B0): UPSTACK DSA Saved Registers: GPR0..... 100087E8 GPR1..... 00000000 GPR2..... 00000000 GPR3..... 00000001 GPR4..... 1000A9A8 GPR5..... 100202B0 GPR6..... 1000AAAC GPR7..... 1000A0F0 GPR8..... 00000030 GPR9..... 80000000 GPR10.... 844EFCAA GPR11.... 846C69E8 GPR12.... 1001A7D0 GPR13.... 100202B0 GPR14.... 9000A9D8 GPR15.... 1000A930 GPREG STORAGE: Storage around GPR0 (100087E8) -0020 100087C8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |................................| +0000 100087E8 1001C028 00000000 00000000 00000000 10017728 10017732 00000000 00000000 |................................| +0020 10008808 00000000 00000000 00000000 00000000 00000001 00000000 00000001 00000000 |................................| Storage around GPR1 (00000000) +0000 00000000 Inaccessible storage. +0020 00000020 Inaccessible storage. +0040 00000040 Inaccessible storage. Storage around GPR2 (00000000) +0000 00000000 Inaccessible storage. +0020 00000020 Inaccessible storage. +0040 00000040 Inaccessible storage. Storage around GPR3 (00000001) -0001 00000000 Inaccessible storage. +001F 00000020 Inaccessible storage. +003F 00000040 Inaccessible storage. Storage around GPR4 (1000A9A8) -0020 1000A988 05404140 401E07F4 90E5D00C 58E0D04C 4100E0A0 5500C314 4140F040 4720F014 |. . ..4.V.....<......C.. 0 ..0.| +0000 1000A9A8 5000E04C 9210E000 50D0E004 18DE5800 C1F45000 D098C050 00000021 5800D098 |&..<k...&.......A4&..q.&.......q| +0020 1000A9C8 58F04050 41300001 18131825 4DE0F010 47000008 18F35800 D0985000 C1F4180D |.0 &........(.0......3...q&.A4..| 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо r2 = 0 рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП (0 + 0)ред рдЕрдм рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо 0 рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рди рддреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рди рд╣реА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреБрд░реНрдЧрдо рд╣реИред

рд╕рдм рдХреБрдЫ, рдЕрдм рдпрд╣ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВ рдорд╛рди 0 рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдФрд░ рд╡рд┐рд╖рдп рд╣реИред

рд╕рдВрджрд░реНрдн: z / рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд

Source: https://habr.com/ru/post/In134045/


All Articles