Microsoft KB Archive/98990

= FIX: GPF/UAE with Huge Array Size as Multiple of 64K Bytes =

Article ID: 98990

Article Last Modified on 10/30/2003

-

APPLIES TO


 * Microsoft Visual Basic 2.0 Standard Edition
 * Microsoft Visual Basic 2.0 Professional Edition

-



This article was previously published under Q98990



SYMPTOMS
A general protection (GP) fault or Unrecoverable Application Error (UAE) may result when you define a huge array using DIM, REDIM, or GLOBAL and specify a size that's a multiple of 64K.



CAUSE
Huge arrays that cause a GP fault or UAE are a(n), where n is 4094 + 4095*i for i = 1 to 7 (assuming 16-byte element sizes). The problem occurs when the array plus its overhead fills a space of 128K and each increment of 64K exactly.



WORKAROUND
To work around the problem, add or subtract one element in the array.



STATUS
Microsoft has confirmed this to be a bug in Microsoft Visual Basic version 2.0 for Windows. This bug was corrected in Microsoft Visual Basic version 3.0 for Windows.



Steps to Reproduce the Problem
 Start Visual Basic, or if Visual Basic is already running, choose New Project from the File menu (ALT, F, N).  Add the following code to the Form_Click event procedure of Form1: Form_Click ReDim A(32759) As Variant End Sub  From the Run menu, choose Start (ALT, R, S).

At this point, a GP fault or UAE occurs. The GP fault address is 0001:0CA2.

Additional query words: buglist2.00 fixlist3.00 2.00

Keywords: kbbug kbfix KB98990

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.