Operating System - OpenVMS
1753486 Members
4040 Online
108794 Solutions
New Discussion юеВ

Re: %SYSTEM-F-ACCVIO, ACCESS VIOLATION, REASON MASK=00

 
CodeStriker
New Member

%SYSTEM-F-ACCVIO, ACCESS VIOLATION, REASON MASK=00

error thrown when I try to compile a customized problem. Can someone give me some hints please...thanks in advance.

VIRTUAL ADDRESS=00000000,PC=00000000,PS=0000001B

Improperly handled condition, image exit forced.
signal arguments: number=00000005
name=0000000C
Register dump: ......
.....
.....
4 REPLIES 4
CodeStriker
New Member

Re: %SYSTEM-F-ACCVIO, ACCESS VIOLATION, REASON MASK=00

to add more information, shame to say that my operating system is OPEN VMS AXP v6.2-1H3.
Hoff
Honored Contributor

Re: %SYSTEM-F-ACCVIO, ACCESS VIOLATION, REASON MASK=00

General information on an Access Violation (ACCVIO):

http://labs.hoffmanlabs.com/node/800

If this access violation (ACCVIO) is arising from within an HP compiler or from within another HP or third-party tool, then look for a newer version of the compiler or the tool, look for mandatory patches for OpenVMS Alpha V6.2-1H3, then report this to HP or whomever is supporting the tool. Pending changes to the compiler or the tool, you might have to make changes to the source code to try to work around this.

If this is arising from within your code, then it is entirely likely that your code contains a bug.

And if this is arising from a system call, it is possible that the call is broken, but it's more likely that there's an error in your code or in your argument list for the system call that's triggering the error.

The particular error looks to be dumping zeros into the stack, and this is typical of a buffer overrun of some sort.

The truncated data points to a corrupt PC address (0) trying to access address zero. You can learn more about the information displayed by an ACCVIO by reading the article cited above.
John Gillings
Honored Contributor

Re: %SYSTEM-F-ACCVIO, ACCESS VIOLATION, REASON MASK=00

As Hoff says, an ACCVIO from a compiler is always a bug. Raise it with HP - though, if your compiler is as old as your OS, well into its teens, HP will just say "upgrade".

If its from your code, the easiet way to get VA=PC=0 is to overwrite a stack frame with 0. Most likely culprit is calling a routine with an array or string which is smaller than the routine is expecting. The routine writes zeros past the end of the array, corrupting the return address. When you return, you effectively jump to 0 and ACCVIO.

Look at the stack dump to get clues to the caller (information about the called routine will have been lost on the return). Check all arguments passed nearby.

Enable array bounds checking when compiling the program.

BTW, when posting a question like this, it's helpful to see failing command and the EXACT and ENTIRE resulting message. Although it looks like gibberish, every byte is written for a purpose and gives information about the error. The more information provided, the less we have to guess and the better the chance of solving your problem.
A crucible of informative mistakes
Richard Brodie_1
Honored Contributor

Re: %SYSTEM-F-ACCVIO, ACCESS VIOLATION, REASON MASK=00

"If its from your code, the easiet way to get VA=PC=0 is to overwrite a stack frame with 0."

LINKing the program without resolving all references works too. Missing a source module or library at link time will do it, if you don't see or ignore the warnings.