1828000 Members
3163 Online
109973 Solutions
New Discussion

Access Violation

 
Himanshu_3
Valued Contributor

Access Violation

Hi All,

Can anybody help on what the below error can
mean ?
Executing RMU for DEC Rdb V5.1-1
%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=42441430, PC=00030A1C, PS=0000001B
%TRACE-F-TRACEBACK, symbolic stack dump follows
Image Name Module Name Routine Name Line Number rel PC abs PC
DAS_D11 DAS_D11_3_PRO_B d11_3_pro_BEIS_ 8062 0000017C 00030A1C
DAS_D11 DAS_D11_1_MAIN main 4701 00000194 00030194
DAS_D11 DAS_D11_1_MAIN __main 0 00000098 00030098
0 A273E170 A273E170
DAS job terminated at


Thanx
2 REPLIES 2
Hein van den Heuvel
Honored Contributor

Re: Access Violation


It meand that the program managed to move (ascii) data into a location where an address was expected:

$ x="abcd"
$ x[0,32]=%x42441430
$ show symb x
X = "0.DB"

Maybe you recognize that short piece of string? The $x14 in the middle is 'control-t' or could be a byte count of 20 perhaps?

With help of the program source for the reported line number you should be able to drill down.

If you can reproduce, then maybe you can run with the debugger. First step would be a breakpoint on the offending line and look around. Next step might be a SET WATCH on the location holding the addres (stack variable or static variable?)?
An other debug technique might be to "SET BREA/EXCEP" to trap it when it breaks and use the debugger to brute-force look for the rest of the string.


Good luck!
Hein.

Volker Halle
Honored Contributor

Re: Access Violation

In addition to Hein's explanations and suggestions, you could also do s SET PROC/DUMP before running that failing image. This would create a process-dump (image-name.DMP in the current default directory) and you can then analyse that dump:

$ ANAL/PROC/IMAGE= image-name.DMP

this will get you into the debugger on the 'static' contents of the process virtual memory at the time of the ACCVIO.

Start with:
DBG> EXA/INS @PC

and then look around, where the 'bad value' or bad adress was coming from.

Volker.