Microsoft KB Archive/93162

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 17:36, 18 July 2020 by 3155ffGd (talk | contribs) (importing KB archive)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Base


BUG: Cannot Watch Undimensioned Array

Article ID: 93162

Article Last Modified on 10/23/2003



APPLIES TO

  • Microsoft CodeView 4.0
  • Microsoft CodeView 4.01
  • Microsoft CodeView 4.1



This article was previously published under Q93162

SYMPTOMS

The versions of CodeView listed above do not properly display undimensioned arrays in C++ code, such as the argv formal parameter to the main() function. The array value does not appear in the locals window, if it is a local variable or function parameter. An attempt to place a quick watch on the array yields an error dialog box. A watch on the array yields a random integer value. In the Visual Workbench, and CVW, watching the first array element (array[0]) causes this error to appear in the watch window:

CXX0030: Error: expression cannot be evaluated

In the locals window, the array will be displayed as:

[BP+0008] char * array[?] = 0xnnnn:0xnnnn


Since the + symbol is not placed before "char", the pointer cannot be expanded.

RESOLUTION

Modify the code to declare the array as a pointer to a pointer. For example, change

   void main (int argc, char *argv[])
                

to the following equivalent definition:

   void main (int argc, char **argv)
                

STATUS

Microsoft has confirmed this to be a problem in CodeView versions 4.0 and 4.01 for MS-DOS, and version 4.10 for Windows. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.


Additional query words: 4.00 4.10

Keywords: kb16bitonly KB93162