Operating System - OpenVMS
1828416 Members
3297 Online
109977 Solutions
New Discussion

Interpreting Symbolic dump

 
Galen Tackett
Valued Contributor

Re: Interpreting Symbolic dump

Ram,

You said:


[I] am using a variable inside a WHILE loop which is getting incremented but never initialized. Do think this should cause the error?


It certainly could. You also might not be able to reproduce the problem every time. As mentioned by Kris above, there's no telling what value an uninitialized variable might have.

Can you provide a bit more code for us? It might be helpful to see how the uninitialized variable is declared, its most recent use before the error, and the declaration of any struct object(s) it might be indexing within.

Also, where you have


DBG> go
%SYSTEM-F-ACCVIO, access violation, reason mask=01, virtual address=0000000A, PC =00003F3F, PSL=03C00000
break on unhandled exception at MY_FILE_READ\main\__17\%LINE 6144+24
6144: while(isalnum(rec_p.line_name[i][j])){
DBG> examine i
MY_FILE_READ\main\i: 0
DBG> examine j
MY_FILE_READ\main\i: 2293812
DBG>


Does the value of 2293812 look reasonable for j given the size of whatever line_name[i] points to?
Could you then give this command and see what happens:

DBG> examine rec_p.line_name[i][j]

Given the code you gave us, I wouldn't expect the values shown for i and j to give an accvio against address 10. But maybe we'll learn a little more.
ram_47
Frequent Advisor

Re: Interpreting Symbolic dump

j is declared as int. As per Kris since it was not initialized it has taken value 2293812. and i forgot to run EXA/INS @PC.

what i'll do is write a short program on the lines of my original code so that i could share with you guys. i should be able to reproduce that error again.

and i must say this forum has been very helpful in resolving my issues, thanks a bunch. i hope to get such support in future too.
ram_47
Frequent Advisor

Re: Interpreting Symbolic dump

> run my_file_read
DBG> set break/exception
DBG> go
break at routine MY_FILE_READ\main
14600: int record_no = 0;
DBG> examine record_no
MY_FILE_READ\main\record_no: 2064480377
DBG>


could someone tell me what is going wrong here?
Volker Halle
Honored Contributor

Re: Interpreting Symbolic dump

Ram,

this number looks like P1 space address:

SDA> eva ^d2064480377
Hex = 00000000.7B0D7879 Decimal = 2064480377

There is some bug in your program. Start with DBG> EXA/INS @PC-10:@PC to find the failing instruction stream.

Volker.
ram_47
Frequent Advisor

Re: Interpreting Symbolic dump

if i start off EXA/INS i get output as below
> run my_file_read
DBG> EXA/INS @PC-10:@PC
%DEBUG-E-NOACCESSR, no read access to address 000000000002FFF6
DBG>


if i start off with GO and then EXA/INS, i get output as below
> run my_file_read
DBG> go
break at routine TQS_EXTRACTOR\main
14600: int record_no = 0;
DBG> exa/ins @pc-10:@pc
TQS_EXTRACTOR\main\%LINE 14592+42:
TQS_EXTRACTOR\main\%LINE 14592+46:
TQS_EXTRACTOR\main\%LINE 14592+50:
DBG>
Volker Halle
Honored Contributor

Re: Interpreting Symbolic dump

Ram,

you have to look at the instruction stream AFTER the exception has happened. We need to see the instructions preceeding the actual exception PC:

DBG> SET LAN MACRO
DBG> EXA/INS @PC-10:@PC

Volker.