Rob 

You are correct but I can tighten it up 

The code is old no 64 bit gpr s 

Pointing to the right registers SDWA or from RB

When I worked at ASG the systems group had recovery routine used by every 
product / TMON for ….

I didn’t put in a SDUMP option 

All I’m saying it’s an old file and it will be in better shape 

Thanks 

> On Nov 29, 2023, at 6:52 AM, Seymour J Metz <sme...@gmu.edu> wrote:
> 
> CSVQUERY can provide the name and load point. If there is only one version 
> of the module, or if you can figure out where it came from, then you can use 
> a mmodule map from, e.g., AMBLIST, to determine the CSECT. Unfortunately, 
> CSVINFO and CSVQUERY do not return a DSN or path.
> 
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
> עַם יִשְׂרָאֵל חַי
> נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר
> 
> ________________________________________
> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
> Jon Perryman <jperr...@pacbell.net>
> Sent: Tuesday, November 28, 2023 8:08 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Abend producing SDWARBAD
> 
> Hi Joseph,
> 
> Just so everyone is clear, you're upgrading CBT192 (generic abend diagnostics 
> / recovery - ESTAEX, FRR, ARR, ...) to include new diagnostic information. 
> You're charged with mapping the abending address to a load module and the 
> offset into that load module which will be displayed as part of the abend 
> diagnostics. Ask yourself if this is useful except in the most basic 
> scenarios.
> 
> There are flaws in using RB's (PRB, SVRB, IRB, ...)  to determine the load 
> module.  It doesn't work for PC routine abends captured by a PRB ESTAE.  It 
> assumes that all load modules are executed using (LINK, XCTL, ...) which 
> creates an RB (PRB, SVRB, IRB, ...). It ignores the common practice of using 
> LOAD with branch tables. What about RBs that have terminated with the abend 
> percolated into the next RB? I'm sure there are more.
> 
> I suggest that you code macros for new diagnostics you add. This simplifies 
> users' ability to choose, customize, replace and eliminate functionality 
> instead of having a single large module. In this case, I suggest giving them 
> a few options.
> 
> Always ask yourself, where you could be exposing a normal sysprog to some 
> grief and how you should warn them of potential dangers. In my opinion, 
> everyone ignores the danger in the single most dangerous z/OS exit, The WTO 
> exit can be exposed to every possible z/OS restriction. Messages from RSM, 
> IOS and others can be issued from problematic states. For example, device 
> allocation because a disk volser is misspelled.
> 
> You were asked specifically to display load module name and offset. I 
> personally find this useless because without a dump, you cannot identify the 
> CSECT with offset. You have an abend at some unknown CSECT name that is 
> linked in the load module. SMP/e complicates this further because it does not 
> do a complete link. Instead, it replaces modules (CSECTs) that have been 
> changed which changes the CSECT sequence. While you could provide this as an 
> option, the question is why? You can't determine the cause in any way except 
> that it was in a specific load module.
> 
> I personally would provide a second option that can determine CSECT name and 
> offset using saveareas (possibly linkage stack).and base reg. You would need 
> to document how to be compatible with what people call baseless code where a 
> register points to literals. I don't know about how others implement it. My 
> personal implementation starts the csect with a SAVE (14,12),,'module info' 
> that never gets executed followed by the program constants. To avoid loading 
> constants to the instruction buffer, I have an ENTRY statement where the 
> executable code starts, followed by a SAVE (14,12) and LARL Rxx,csect_name. 
> This eliminates the need to calculate offsets into the program.
> 
> From a diagnostic standpoint, it looks like a standard program where a J or B 
> is followed by a length & eyecatcher. My recovery diagnostics find the reg 
> (R12 for my programs) that is within 12K of the failing address and verify 
> there is a J or B.
> 
> A third option is to give sample code that requires user mods in the case 
> they don't follow standard conventions.
> 
> You should ask the group because I suspect that others will have 
> recommendations and preferences. Maybe ask the assembler group too.
> 
>> On Tue, 28 Nov 2023 12:41:21 -0500, Joseph Reichman <reichman...@gmail.com> 
>> wrote:
>> 
>> Sam asked me to update file 192 in cbttape
>> 
>> Its a generic recovery
>> 
>> I’m making two
>> 
>> Updates
>> 
>> 1) when the error PSW isn’t in the program storage so I’m finding out if the 
>> abend happened in a RB and then at what offset the user called that rb
>> 2) displaying 128 bit PSW and 64 bit gpr
>> If then abend occurred while the user was in amode 64
>> 
>> That’s it
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> 
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to