![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: We are getting the message: ACCVIO, access violation, reason mask=00, virtual address=32313of7, etc. This is a program we run weekly without problems. How can we remedy thi error? The Answer is : Weekly operation does not preclude the existence of latent problems within the code. Normally, diagnosis of software problems in programs requires fairly detailed information. For example, relevent information includes the language used, the compiler version, the failing and nearby lines of code, and the complete error message. Often times, the programmer or support staff for the package is in the best position to locate and resolve this problems. In this case, the OpenVMS Wizard will invoke magic spells and attempt to discern what is occuring based on the (extremely) limited amount of information provided. The virtual address is reported as "32313of7" -- which will be assumed to be "323130F7". This value equates to the ASCII string "012". One potential explanation for this is a character string that has overwritten a location used for a pointer. This is buffer overrun is quite easy in languages such as Macro32 and C, and these errors can be entirely latent in apparently-working code for months or years. The OpenVMS Wizard suggests you use the traceback information provided in the full error message to locate the routine and line number on which the ACCVIO occurred, as well as the output from the HELP/MESSAGE ACCVIO command, and then work backwards, checking that all the formal and actual argument lists match exactly all the way up the stack. Be especially suspicious of any strings that could potentially contain the above ASCII characters. Also please see topic 1661 here in Ask The Wizard.
|