Portal | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Forum Index
 
Register
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Load Module compare showing mismatches in V adcon data

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & Assembler
View previous topic :: :: View next topic  
Author Message
Aditya.Srivastava

New User


Joined: 21 Aug 2012
Posts: 11
Location: India

PostPosted: Tue Dec 10, 2019 8:26 pm    Post subject: Load Module compare showing mismatches in V adcon data
Reply with quote

Hello,

I am facing a situation in my z/OS shop where my QA team is doing a compare between unit test and integration load library and getting mismatches in few modules.

When I research about these mismatches I found that the differences are seen in V adcon which are part of literal pool and they have an address which differs by x'10' bytes between the two loads. Interestingly, all V adcon literal differences has a difference factor of x'10' bytes.

I checked in production library load module for program X which calls program A as
Code:
 
            L     R15,=V(A)
            BASR  R14,R15

In program X, =V(A) goes in to literal pool. I brought this program in my work library and assembled there and generated a load module in my private library. When I compares my load module with production I am getting a mismatch in =V(A) and the difference between the two addresses is x'10'.

Example, if production value of =V(A) in load module of X is x'000712A0' then the value of =V(A) in my personal library is x'000712B0'.

I have read about V adcons but I am not sure about how it gets addresses during link edit and what can be a reason for difference in loads with always a value of x'10'.

Any help is appreciated.

Thanks,
Aditya[/code]
Back to top
View user's profile Send private message

sergeyken

Active Member


Joined: 29 Apr 2008
Posts: 820
Location: Maryland

PostPosted: Tue Dec 10, 2019 9:17 pm    Post subject:
Reply with quote

First of all, compare the maps of load modules created by the Binder (Linkage Editor) for both versions.

Then, maybe, you'll need also to compare the maps from their Assembler listings, too.

A dull comparison of binary modules may be a very bad idea...
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 859
Location: The Universe

PostPosted: Tue Dec 10, 2019 10:56 pm    Post subject:
Reply with quote

As Sergeyken says, compare the load module maps of both modules. Carefully.

Conversion of V-cons to addresses is rather complex. A V con is both an address and it implies the address is an external symbol. Most of the time a V con contains the actual address of an external symbol. The major exception is for modules in a planned overlay structure. When a V con is used as linkage to a module in a different segment of the overlay - and planned overlay load modules are very rare any more - the V con actually points to an address in a special internal module created by the Linkage Editor or Binder identified as a $SEGTAB or $ENDTAB (I no longer remember which) that has code to tell a special piece of code to in the supervisor to load, if necessary, the segment containing the code to run, and then branch to the code. From the point of view of the original program, the CALL goes directly to the affected code with no intervention of the code in the $SEGTAB or $ENDTAB.

If anyone is interested - and I doubt if there is any interest - I can prepare a fuller report.
Back to top
View user's profile Send private message
sergeyken

Active Member


Joined: 29 Apr 2008
Posts: 820
Location: Maryland

PostPosted: Tue Dec 10, 2019 11:15 pm    Post subject:
Reply with quote

I would not recommend the TS to go deeper into the physical structure of a binary load module. At least - for this QA purposes, for sure.
Back to top
View user's profile Send private message
Aditya.Srivastava

New User


Joined: 21 Aug 2012
Posts: 11
Location: India

PostPosted: Thu Dec 12, 2019 12:07 pm    Post subject:
Reply with quote

Thank You for your responses !!
I think the team is using FILE AID software's load module compare option to do a compare. May be its not a best idea to that and I will advise them after some more research.

Thank You
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 859
Location: The Universe

PostPosted: Thu Dec 12, 2019 7:44 pm    Post subject:
Reply with quote

Aditya.Srivastava wrote:
Thank You for your responses !!
I think the team is using FILE AID software's load module compare option to do a compare. May be its not a best idea to that and I will advise them after some more research.

Thank You

Yes, even programs that claim to know something about load module structure can easily be confused by address constants. Comparing load modules is extremely difficult.

What you should try is to run IMBLIST LISTLOAD OUTPUT=XREF on both load modules, and check - not the nominal value as reported by Fileaid, but the XREF as reported by IMBLIST.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & Assembler All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Job is loading load modules several t... ravikumar_sri2001 COBOL Programming 12 Fri Sep 18, 2020 1:22 am
No new posts Compare two character variables Head ... Harold Barnes CLIST & REXX 3 Fri Aug 28, 2020 12:38 am
No new posts Extract part of data from file and wr... sathyajes DFSORT/ICETOOL 9 Thu Jul 16, 2020 10:49 am
No new posts unable to compile module jzhardy PL/I & Assembler 6 Tue Jun 02, 2020 1:24 pm
No new posts Compare multiple files using JCL/Rexx... tanvi110788 JCL & VSAM 4 Tue May 19, 2020 5:47 pm

Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us