PRB: Only First LOCAL Variable Generates CodeView Information

ID Number: Q30416

5.10

MS-DOS

buglist5.10 fixlist5.10a

Summary:

SYMPTOMS

In the Microsoft Macro Assembler (MASM) version 5.1, only the

first LOCAL variable on a line generates CodeView information.

Attempting to put a watch on a LOCAL variable that is not the

first LOCAL variable on a line will cause Codeview to display

the following message box:

----------------------------------

| ERROR |

| Unknown Symbol |

| Press Any Key to Continue... |

----------------------------------

RESOLUTION

To avoid the problem in MASM version 5.1, break up any lines that

define more than one LOCAL variable into multiple lines.

STATUS

Microsoft has confirmed this to be a problem in MASM version 5.1.

This problem was corrected in MASM version 5.1a.

More Information:

The following sample code duplicates the problem:

Sample Code

-----------

; Assemble options needed: /Zi

; Link options needed: /CO

.MODEL small, C ; A Language specifier is required when using

; the LOCAL directive in MASM 5.1, 5.1A and

; when using QuickAssembler 2.01 and 2.51.

; MASM 6.0 does not require this.

.CODE

Start:

call procedure ; Call the procedure

mov ax, 4C00h ; Exit

int 21h

procedure proc

local first:word

local second:word,third:word

; To avoid the problem in MASM 5.1, break the preceding line up

; into multiple lines:

;

; local second:word

; local third:word

ret

procedure endp

.STACK

END Start

Additional reference words: 5.10 5.10a 6.00a 6.00b