Posted: Sat Jan 04, 2003 5:28 pm Post subject: Pinpoint Abends SOC7/SOC5,SOC4 etc
Hi,
Can anyone let me know as how do we back trak into the COBOL pgm if the pgm was abended with SOC5/SOC7/SOC4 etc..I know the causes for those errors. But how do we figure out which move stmt or where exactly the problem is. Sysdump,Sysabend etc gives some address memory locations but they d't give clear idea.
Also If the main pgm is calling another one,and get this kind of abends then how do we proceed to fix them?
I do not want to use DISPLAY stmts and also does PSW show something abt this?
Joined: 26 Nov 2002 Posts: 12406 Topics: 75 Location: San Jose
Posted: Sat Jan 04, 2003 6:23 pm Post subject:
ST,
This is a question which is best answered by sitting down with you and show you how to read dump.But that is quite impossible,so let me take a example and show it.Let us say you have dump like this in the SYSUDUMP.
Code:
The Failing Instruction is in Program (CSECT): MYPROG At Offset +X'037640' .
You need to determine the Verb corresponding to this offset - if your program was compiled with the OFFSET option then search for 'VERB' - you should find something like this:
Code:
LINE # HEXLOC VERB
003658 000F22 PERFORM
....
Note that there will be mulitple columns of this data (and probably several pages). You need to find a HEXLOC value which is equal to, or slightly less than, your offset (37640). The line# will then direct you to the failing instruction.
If the program was compiled with the LIST option, then you will have an assembler listing, and you should be able to find this offset directly.If the program was not compiled with either of these options, you will need to recompile it with the OFFSET option specified.
However, this is a huge offset, and it is quite possible that you are not actually in your program, but instead in a called subroutine (possibly a Cobol subroutine to perform data conversion). If this is the case, you would normally use R14 to identify where you came from - however, in this case R14 is being used as a data register, which makes life a little more difficult. It now depends upon how complete your dump is, as you will need to find the R14 value at the entry to the subroutine. This should be at x'0C' in to the savearea addressed by R13.
If your shop has Abend-aid then it will be easier to use "the dump", because it has been formatted so that it can read easily. Otherwise, dump reading is somewhat more difficult. You have to learn how to do a dump analysis, which would include knowledge of items such as REGISTERS, PSW, CDE, XL etc.
Also Application Debugging by Robert Binder is a good book to read.
Hope this helps...
cheers
kolusu
Last edited by kolusu on Sat Jan 04, 2003 6:50 pm; edited 1 time in total
Joined: 26 Nov 2002 Posts: 12406 Topics: 75 Location: San Jose
Posted: Sat Jan 04, 2003 6:49 pm Post subject:
ST,
Did you read this in my first post?
Code:
You need to find a HEXLOC value which is equal to, or slightly less than, your offset (37640). The line# will then direct you to the failing instruction
Additionally, if your shop has Abend Aid you can set your view up similar to the below mentioned example and it will show you the exact piece of code which was being executed when the program abended. Make sure you compile the program to your own DDIO library. This example is for the test environment. If you want to do this in a production environment you need to make sure your shop is set up for that because not all companies enable this option.
My DDIO library is "'TVSAMD.XPED2.SYMBOLIC' in the example below you will need to replace this with your DDIO hit enter and follow through Abend Aid as you usually would. By doing this you will have a formated dump of your source listing and the exact statement that was causing the problem.
Code:
COMPUWARE/VF ENTRY PANEL --------- COPYRIGHT COMPUWARE CORPORATION 1976, 2001.
Command ===>
Dataset choice . 0 (Select 0 - 8, from below, or C for Contact Data)
Member . . . . . ________ (MVS:jobname, CICS:tran/term, SOURCE:pgm, or member*)
(Use the LNAME command to enter a Long Program Name)
Remote
Abend-AID Report File: Volume Server
0 'ABENDSPF.DUMP'
DDIO Source Listing Files:
1 'ABENDSPF.SOURCE.DDIO'
2 'TVSAMD.XPED2.SYMBOLIC'
3
4
5
6
7
8
Processing options: Source browsing options:
Show report with XLS YES (Yes or no) Unit . . . . . VIO
Confirm delete . . NO (Yes or no) Blocking . . . 10
Show print setup . NO (Yes or no)
Show source warning YES (Yes or no, used only for Abend-AID)
Language . . . . . ENGLISH
Local Server SSID . (Required for Viewing Remote DDIO files)
Joined: 02 Dec 2002 Posts: 706 Topics: 65 Location: MD, USA
Posted: Wed Oct 20, 2004 2:09 pm Post subject:
I looked at mannual for BAL instruction and found that in 24 bit address, last three bytes of the register in first operand contain the address. Now it makes perfect sense.
I have the DDIO file in test region. I like to transmit this file to production, for some reason I could not XMIT this file ( may be because this is a VSAM file). Any help is greatly appreciated.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum