KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q43063: Calls Stack Is Sometimes Incomplete

Article: Q43063
Product(s): See article
Version(s): 2.00
Operating System(s): MS-DOS
Keyword(s): ENDUSER | buglist2.00 | mspl13_c
Last Modified: 2-MAY-1989

In QuickC Version 2.00, the calls stack is incomplete under specific
circumstances. When you select Debug menu, Calls option, and the
current statement is the opening brace of a function, the calls stack
omits the second function that should be in the list. This is the only
function omitted and can be restored to the list by using F8 to trace
one line further into the code.

The calls stack is complete in QuickC Versions 1.00 and 1.01.

The calls stack lists all function calls that led to the current
function. It is used for repositioning the cursor to a calling
function by selecting that function from the calls stack. This is
useful because it allows you to press F7 to execute the code necessary
to return to a calling function.

Microsoft is researching this problem and will new post information as
it becomes available.

To demonstrate the problem, consider the following program:

   void A (void);
   void B (void);

   void main (void)
    {
      A ();
    }

   void A (void)
    {
      B ();
    }

   void B (void)
    {
    }

1. Press F8 once. Selecting menu Debug, option Calls will result in the
   following display:

      main()

   This is correct.

2. Press F8 twice. This procedure will trace into function A and
   highlight the opening brace. Selecting Calls will now list the
   following:

      A()

   This is incorrect. In addition to A(), main() should be listed.

3. Press F8 again. Selecting Calls will now correctly list the
   following:

      A()
      main()

   Tracing past the initial brace of function A corrected the calls
   stack.

4. Press F8 again. Selecting Calls now lists the following:

      B()
      main()

   This is once again incorrect. Between B() and main(), A() should be
   listed.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.