CodeView Problem Stepping into Basic GOSUB Compiled /X or /D (38493)



The information in this article applies to:

  • Microsoft QuickBASIC 4.0, when used with:
    • the operating system: MS-DOS
  • Microsoft QuickBASIC 4.0b, when used with:
    • the operating system: MS-DOS
  • Microsoft QuickBASIC 4.5, when used with:
    • the operating system: MS-DOS
  • Microsoft BASIC Compiler for MS-DOS and OS/2 6.0
  • Microsoft BASIC Compiler for MS-DOS and OS/2 6.0b
  • Microsoft Basic Professional Development System (PDS) for MS-DOS and MS OS/2 7.0
  • Microsoft Basic Professional Development System (PDS) for MS-DOS and MS OS/2 7.1

This article was previously published under Q38493

SYMPTOMS

If you compile the program below with BC /X or /D or /E in addition to the /Zi option (and then LINK with /CO) for Microsoft CodeView compatibility, the GOSUB subroutine cannot be "stepped into" in CodeView (using the F8 key in CV.EXE). The CodeView stepping-in process works correctly if the program is compiled without /X, without /D, and without /E. (The compiler switch /X is needed to do error trapping using ON ERROR with RESUME statements.)

WORKAROUND

To work around this limitation, do the following:
  1. When the GOSUB is encountered, switch the View option to mixed mode and step through lines in mixed mode until the subroutine is reached, then switch back to Basic mode.
  2. When the RETURN statement is reached, go back into mixed mode until you are back to the line after the GOSUB.

STATUS

Microsoft has confirmed this to be a bug in Microsoft QuickBasic versions 4.0, 4.0b, and 4.5; in Microsoft Basic Compiler versions 6.0 and 6.0b for MS-DOS and MS OS/2 (buglist6.00, buglist6.00b); and in Microsoft Basic Professional Development System (PDS) versions 7.0 and 7.1 for MS-DOS and MS OS/2 (buglist7.00, buglist7.10). We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

Code Example

   CLS
   PRINT "Point 1"
   GOSUB 100
   PRINT "Point 3"
   END

   REM * Subroutine *
   100 PRINT "Point 2"
   200 RETURN
				

Modification Type:MinorLast Reviewed:1/8/2003
Keywords:KB38493