Operating System - OpenVMS
1752777 Members
6000 Online
108789 Solutions
New Discussion юеВ

Re: ACCVIO register stack dump

 
SOLVED
Go to solution
Volker Halle
Honored Contributor
Solution

Re: ACCVIO register stack dump

Abel,

I'm not a C programmer, so I had to write a little example program - see attachment ;-)

But the following lines of C code in your 1st attachment look suspicious to me:

buf[sizeof(buf)-1]='\0';
for (i=0; (buf[i]!=','); i++);
buf[i] = '\0';

What's gonna happen, if there is no ',' in the string ??????

Volker.
pacab
Advisor

Re: ACCVIO register stack dump

Volker,
I checked at the code you pointed out in the for loop. The record being check looks like "user,printer_queue". I looked at the file that holds the aforementioned record layout, and all records appear to have a "," in between the user and queue name.

I know the problem ("bug") has to be in the printing code, because if I do not invoke that functionality the process will not fail. Do you have any more ideas? I trully appreciate all your help. Do you have any docs of tips and trouble shooting techniques you can share?

Thx - Abel
Volker Halle
Honored Contributor

Re: ACCVIO register stack dump

Abel,

please check the buffer contents in the process dump:

SDA> EXA 7AE2C000-2B5F;100

Just looking at the code and the records you think it will read may be fine, but you have the process dump, in which you can check the REAL DATA.

To find out the source code statement on which the ACCVIO is happening, you'll have to have the linker map and the module listing - including machine code - from exactly the version of the image, which is currently running.

But if you think you know the module/routine the failure is happening in, you can separately compile this module with /LIS/MACHINE_CODE and try to find the instruction stream by comparing the instruction stream data from the machine code listing and the process dump.

I don't have any books or documentation describing these kind of troubleshooting techniques, it's just experience and knowledge obtained during 25 years of OpenVMS support at Digital/Compaq/HP. I've shared this inforamtion in the past with my former colleagues internally and I'm now doing it in this forum...

Volker.
Volker Halle
Honored Contributor

Re: ACCVIO register stack dump

Abel,

were you able to further diagnose and solve this problem ? If so, please provide feedback or report the diagnosis steps, which led to the solution.

Thanks,

Volker.
pacab
Advisor

Re: ACCVIO register stack dump

Thank you to all for your input, it was very helpful. In particular Volker, thank you for your support, time and guidance.

I was able to successfully correct the ACCVIO error I was encountering.

There were several issues:
1) There is a patch we had to install to deal with a known LINKER problem on v7.3 (as we moved this app from v6.2 recently)

2) Improper clean up, usage and handling of SMG$ utiltilies which worked fine under v6.2 (not sure how or why).

Now, I was able to figure out the exact location of this issues, by using SDA and Debugger tools (see previous posting by Volker) in conjunction with a listing of the compiled routine using "CXX/lis/machine_code routinename" (great tool!...thank you Volker!).

When you run the application in debug mode ("run/debug"...Which you also need to compile and link with the debug qualifier), the debugger will stop when it encounters an error for you to review. It will tell you the location of the code that caused the error (function name) and line number of the code in the routine which you can then use in the listing of the "compiled/lis" file to view the actual line of code. BTW, the file name created by using the "/lis" option, will be "routine_name.lis".

Once again, thank you to all for your feedback.

Abel
pacab
Advisor

Re: ACCVIO register stack dump

One last thing...The manuals are great resource...But, certainly do not replace the experience and knowledge of this forum.

Abel
pacab
Advisor

Re: ACCVIO register stack dump

Thank you to all...