carl@CITHEX.CALTECH.EDU (08/08/88)
I just noticed a bug somewhere within the interaction between VAX C and
the DEBUGGER. The problem is that the DEBUGGER won't allow you to examine
character arrays using the EXAMINE/ASCIZ command. The following command
procedure demonstrates the bug. Does anybody know whether:
1) The bug's been SPR'd; and
2) Whether it goes away with VMS v5.0?
It was introduced sometime after VMS V4.5 and VAX C V2.1-007 and is there under
VMS V4.7 and VAX C V2.3-024.
********************************************************************************
$ CREATE C_DEBUG_BUG.C ! 'F$VERIFY(1)
main()
{ char test[20], *ptr;
strcpy(test,"Testing");
ptr = test;
puts(ptr);
puts(test);
}
$ CC/DEBUG/NOOPT C_DEBUG_BUG
$ LINK C_DEBUG_BUG,SYS$INPUT:/OPT/DEBUG
SYS$SHARE:VAXCRTL/SHARE
$ RUN C_DEBUG_BUG
SET BREAK %LINE 5
GO
EXAM/ASCIZ test
EXAM/ASCIZ *test
EXAM/ASCIZ ptr
EXAM/ASCIZ *ptr
EXIT
$ DELETE C_DEBUG_BUG.C;,.OBJ;,.EXE;
********************************************************************************
The relevent debugger output from VMS V4.5 and VAX C V2.1-007 is:
********************************************************************************
SET BREAK %LINE 5
GO
break at C_DEBUG_BUG\main\%LINE 5
5: puts(ptr);
EXAM/ASCIZ test
C_DEBUG_BUG\main\test: "Testing"
EXAM/ASCIZ *test
%DEBUG-W-NOACCESSR, no read access to virtual address 00000054
EXAM/ASCIZ ptr
C_DEBUG_BUG\main\ptr: "hqt."
EXAM/ASCIZ *ptr
*C_DEBUG_BUG\main\ptr: "Testing"
********************************************************************************
and from VMS V4.7 and VAX C V2.3-024 is:
********************************************************************************
SET BREAK %LINE 5
GO
break at C_DEBUG_BUG\main\%LINE 5
5: puts(ptr);
EXAM/ASCIZ test
%DEBUG-E-NOACCESSR, no read access to virtual address 7FF01D68
EXAM/ASCIZ *test
%DEBUG-E-NOACCESSR, no read access to virtual address 00000054
EXAM/ASCIZ ptr
%DEBUG-E-NOACCESSR, no read access to virtual address 7FF01D7C
EXAM/ASCIZ *ptr
%DEBUG-E-NOACCESSR, no read access to virtual address 7FF01D68