[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
| Title: | DEC BASIC Conference | 
| Notice: | SSB Kit Now available - Note 2.29 | 
| Moderator: | TLE::HAYNES | 
|  | 
| Created: | Wed Sep 15 1993 | 
| Last Modified: | Thu Jun 05 1997 | 
| Last Successful Update: | Fri Jun 06 1997 | 
| Number of topics: | 210 | 
| Total number of notes: | 976 | 
202.0. "AXP Debuger can't examine dynamic string arrays ..." by BACHUS::SABLON (Mich�le Sablon, TP/IM Support Belgium 856-7238) Thu Mar 06 1997 07:53
OpenVMS AXP 7.1
Basic 1.2-000
    I'm not sure if this is a debugger or a BASIC problem.
    The little program below can be use to reproduce the strange behaviour  
    of the OpenVMS AXP debugger. While an examine of a dynamic array is 
    performed, one receive the error message:
    %DEBUG-E-NOSYMBOL, symbol '...' is not in the symbol table.
    * This problem only occurs on the AXP. It doesn't on the VAX (OpenVMS 
      V6.2). I made the test with OpenVMS AXP V7.1 but the customer that found
      the problem is in V6.2.
    * It only occurs with dynamic string arrays, i.e. arrays defined using the 
      DIMENSION STRING statement, using variables as dimension specification:
      DECLARE INTERGER a%
      a% = 5%
      DIMENSION STRING array( a% )
    * It doesn't occur if the dynamic arrays are of numerical type (integer 
      and real tested) or if the dimensions are specified using CONSTANTs.
    Do I need to escalate the problem ? Best,
    Mich�le Sablon.
=====
$CREATE y.bas
1	DECLARE INTEGER a%, b%, c%, d%, e%
!	The below syntax would work:
!1	DECLARE INTEGER CONSTANT a% = 5%
!2	DECLARE INTEGER CONSTANT b% = 2%
!3	DECLARE INTEGER CONSTANT c% = 3%
!4	DECLARE INTEGER CONSTANT d% = 7%
!5	DECLARE INTEGER CONSTANT e% = 6%
6	a% = 5%
7 	b% = 2%
8	c% = 3%
9	d% = 7%
10	e% = 6%
100	DIMENSION   STRING	x1(a%)
110	DIMENSION   STRING	x2(a%, b%)
120	DIMENSION   REAL	y1(a%, b%, c%)
130	DIMENSION   INTEGER	y2(a%, b%, c%, d%)
1000	z% = 0%
	FOR i% = 1% TO a% STEP 1%
	    FOR j% = 1% TO b% STEP 1%
	    	FOR k% = 1% TO c% STEP 1%
		    FOR l% = 1% TO d% STEP 1%
		    	y2( i%,j%,k%,l% ) = z%
			z% = z% + 1
		    NEXT l%
		    y1( i%,j%,k% ) = z% * 1.1
		NEXT k%
		x2( i%,j% ) = chr$( z% )
	    NEXT j%
	    x1( i% ) = chr$( z% )
	NEXT i%
5000    FOR i% = 1% TO a% STEP 1%
            PRINT   x1(i%)
        NEXT i% 
32767	END PROGRAM 1
$ BASIC/NOOPT/DEBUG y
$ LINK/DEBUG y
$ RUN/NODEBUG y
*
T
~
�
�
$ RUN/DEBUG y
DBG> set br %li 20
DBG> go
DBG> exa x1
%DEBUG-E-NOSYMBOL, symbol 'X1' is not in the symbol table
DBG> exa x2
%DEBUG-E-NOSYMBOL, symbol 'X2' is not in the symbol table
DBG> exa y1
Y$MAIN\Y1(0:5,0:2,0:3)
    (0,0,0):    0.0000000
    (0,0,1):    0.0000000
    ...
DBG> exa y2
Y$MAIN\Y2(0:5,0:2,0:3,0:7)
    (0,0,0,0):  0
    (0,0,0,1):  0
    ...
DBG>go
*
T
~
�
�
%DEBUG-I-EXITSTATUS, is '%SYSTEM-S-NORMAL, normal successful completion'
DBG> exa x1
%DEBUG-E-NOSYMBOL, symbol 'X1' is not in the symbol table
DBG> exa y1
%DEBUG-W-SYMNOTACT, non-static variable 'Y$MAIN\Y1' is not active
| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|