Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

CEE3DMP

Status
Not open for further replies.
M

Member 310024

Guest
Does anyone have a URL to a good explanation of how to de-mystify a CEE3DMP (V1 R4.0) dump, resulting from a COBOL/DB2 program which crashes when a DELETE fails.
(The code doesn't test for SQLCODE +100, and instead crashes thru abendaid).

I've got some examples already, which talk about PSW word#2 (ie NSI addr) and program ENTRY PT etc, subtracting addresses etc to get various offsets, but when I try to apply the example to my dump, it seems quite different.

I know I've also got the abendaid dump, but for the moment, I would like to be able to understand how the CEE2DMP works.

I normally consider I have failed, if I have to resort to dumps or expeditor, but now I find myself having to debug poorly structured/designed programs (which I'm not used to) and I'm finding them too difficult to debug by simply looking at the source code.
 
Hi Terminate,
are you saying that you've got abendaid at the site, but are not/don't want to use it to debug the abend? If so, this seems a little odd to me. Why have a dog and then bark yourself?

I've seen some good write ups on this, but I think that it depends on OS and whether you are LE or not. Can you tell us whether you are ZOS, and whether the site uses LE?

Marc
 
Terminate

As you have a CEE dump, we can assume that you are running LE. [ol][li]Find 'Traceback:' in the dump. It's near the top.[/li][li]This gives you the stack trace - you should see a list of modules, entry points, and offsets.[/li][li]You should see the failing module in there, a couple of levels down (LE error handling modules, i.e. the ones that produced the dump, will be at the top.)[/li][li]The offset shown in your module is the point at which you got the error. Exactly. LE is really helpful, and does all the subtraction for you.[/li][li]Look at your compile listing (which will need to have been compiled with MAP and probably OFFSET. If you really want to get to the bottom of it, you can get an assembly listing too. Look in the MAP output (COBOL: find 'HEXLOC') and find an instruction that maps to your offset. It may not be exact - most high level language instructions map to dozens of assembler instructions, so you will need to find the one that brackets your offset.[/li][li]Look up the instruction in the listing. Most likely it will referencing some data, perhaps that should have been populated by your failed DB2 call.[/li][li]Look up the data in your data division listing. It will show the BLL or BLW cell that holds the data, along with the offset in the cell. Go back to your dump, and find the associated BLL or BLW area, look up the offset, and see what data you have. After that, it's up to you.[/li][/ol]

Hope this helps
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top