CodeView Cannot Display Data in a Huge Array Beyond 64k

ID Number: Q73511

3.00 3.10 3.11 3.14 | 3.00 3.10 3.11 3.12 3.50

MS-DOS | OS/2

buglist3.11 buglist3.12 buglist3.14 buglist3.50

Summary:

A huge array that contains more than 64K (65535) bytes of data cannot

be fully expanded in Microsoft CodeView versions 3.0, 3.1, 3.11, 3.12,

3.14, and 3.50. Both the Watch and Quick Watch windows only allow the

display of the first 64K of data in a huge data structure.

More Information:

The example code below demonstrates this limitation. Compile and link

the program for huge memory model (/AH) and specify CodeView debugging

information (/Zi). Bring the program up in CodeView and set a watch on

big_array, which is a huge array of 10000 doubles (80000 bytes).

Expand the array by clicking on it in the Watch window with the mouse

or by moving the cursor to it and pressing ENTER.

At this point, you can scroll down through the array, but the only

visible array elements will be 0 through 8191 (65536 bytes).

Microsoft has confirmed this to be a problem in CodeView versions 3.0,

3.1, 3.11, 3.12, 3.14, and 3.50. We are researching this problem and

will post new information here as it becomes available.

Sample Code

-----------

/* Compile options needed: /AH /Zi /Od

*/

#include <stdio.h>

double big_array[10000];

void main( void)

{

int i;

double d;

for( i = 0, d = 0.0f ; i < 10000 ; i++, d += 0.01)

big_array[i] = d;

for( i = 0 ; i < 10000 ; i++)

printf( "big_array[%d] = %2.2f\n", i, big_array[i]);

}

Additional reference words: 3.00 3.10 buglist3.00 buglist3.10