Debugging a dump shows me Sleep()?



  • Ok, I'm confused why this debug shows me this line as the failure.

    Call stack

    [External Code]
    WorkLoop.cpp
    [External Code]
    
       if(doneWithWork == FALSE)
       {
            if (threadsStatusesGood() == FALSE) throw new Error("message");
            if (doneWithWork ==FALSE)
            {
                while (timeSpanNotToCheckIfDoneWithWork())
                {
                    if (SystemStateIsX() == TRUE)
                    {
                        if ( (shouldDoStuff == FALSE) &&
                             WaitFoMoreWork() == OAS_FALSE)
                        {
                            shouldDoStuff = TRUE;
                        }
                    }
                    else
                    {
                        shouldDoStuff = FALSE;
                    }
    
                    Sleep(100);
    =>          } // debug pointer on this line.
             }
        }
    
    


  • Is this really coding help rather than sidebar WTF?
    Because you must have seen this... quirk.. before when working with MSVC++.
    It points to the line the code will return to after Sleep finishes executing, for whatever reason, probably an AS_DESIGNED_BY_GOD_HIMSELF one.



  • Turns out, I didn't see the thread dropdown in the debugger.

    I'll have to check EVERY single thread, and there are like 30 of them.


  • Java Dev

    I wouldn't know about VS, but on linux the thread that received a fatal signal is usually at the bottom. Or at the top.



  • Or somewhere in the middle.



  • Where in the list is this item?
    Within the list.



  • the Threads window is a much 'better' view than the thread dropdown, at least it shows someplace close to the last e/rip of the CONTEXT in the dump

    still annoyed how dumps don't track the debugger-specific thread name exception (obviously, as nobody catches it as first-chance, and SEH throws it away)


Log in to reply