Making the Visual C++ 6.0 debugger not 'step in'

When debugging your code, it is likely that at some point you have accidently stepped in 'too far'. Whether it was into the constructor for CString or even just a piece of code that you've already debugged and *know* works, it's a pain to have to keep switching back and forth between doing 'step in' and 'step over'.

Thankfully, the debugger gurus at Microsoft seem to have seen this problem, too. As a quick warning, this feature is not documented and was just 'mentioned' by Andy Pennell in his presentation entitled 'Power Debugging with Visual C++ 6.0', given at the Boston '99 Visual C++ Developer's Conference. It also only works in Visual C++ 6.0.

Open up your autoexp.dat file -- in Common\MSDev98\Bin -- and add a new section named ExecutionControl to the end of the file and then add lines of the form: function=NoStepInto


[ExecutionControl]
CString::CString==NoStepInto
CString:::operator==NoStepInto

These three lines will cause the debugger not to step into the CString contructor or assignment operator. As is standard for any modifications to this file, you have to shut down and reload Visual C++ for this to take effect.

Date Last Updated: April 24, 1999


Comments

  • Attention: only one =, not two == before 'NoStepInto'

    Posted by icebear on 01/30/2009 02:37pm

    As shown in the other comments be aware not to use two == as described in the basic article.

    Reply
  • Can't manage to set NoStepInto for std::vector template class

    Posted by Legacy on 11/10/2000 12:00am

    Originally posted by: Maarten van Casteren

    I've tried to use the NoStepInto feature to prevent the debugger from stepping into the STL vector::operator[] function, which it does all the time if you use STL a lot.

    I tried (one at the time, of course):

    [ExecutionControl]
    std::*=NoStepInto
    std::vector::operator[]=NoStepInto
    std::vector<*>::operator[]=NoStepInto
    _STLD::vector<*>::operator[]=NoStepInto
    _STLD::vector<Layer*,_STLD::allocator<Layer*> >::operator[]=NoStepInto

    The first line being recommended by one of the other comments and the last line being what the call stack window displays. None of them works.

    Would somebody know how to do this?

    Thanks,

    Maarten.

    Reply
  • More capabilities

    Posted by Legacy on 08/29/2000 12:00am

    Originally posted by: Dejan Seatovic

    You can also use namespaces:

    ATL::*=NoStepInto
    std::*=NoStepInto

    coomplete class

    CString::*=NoStepInto

    Reply
  • Great! This was exactly what I've missed since years...

    Posted by Legacy on 08/20/1999 12:00am

    Originally posted by: Christoph Weber

    ... and of course was as usually nowhere documented by Microsoft...

    Reply
  • Templates?

    Posted by Legacy on 05/03/1999 12:00am

    Originally posted by: Nenad Caklovic

    Does anybody know the format for template classes and template functions?

    Reply
  • More samples

    Posted by Legacy on 04/27/1999 12:00am

    Originally posted by: Simon Capewell

    operator new=NoStepInto

    ; MFC
    CObject::operator new=NoStepInto
    CString::*=NoStepInto
    CSize::*=NoStepInto
    CPoint::*=NoStepInto
    CRect::*=NoStepInto

    Reply
  • CString:::operator==NoStepInto too many colons?

    Posted by Legacy on 04/26/1999 12:00am

    Originally posted by: Roger Onslow

    I am assuming that

    CString:::operator==NoStepInto

    should really be

    CString::operator==NoStepInto

    Is this correct?

    Roger

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • The explosion in mobile devices and applications has generated a great deal of interest in APIs. Today's businesses are under increased pressure to make it easy to build apps, supply tools to help developers work more quickly, and deploy operational analytics so they can track users, developers, application performance, and more. Apigee Edge provides comprehensive API delivery tools and both operational and business-level analytics in an integrated platform. It is available as on-premise software or through …

  • Not long ago, security was viewed as one of the biggest obstacles to widespread adoption of cloud-based deployments for enterprise software solutions. However, the combination of advancing technology and an increasing variety of threats that companies must guard against is rapidly turning the tide. Cloud vendors typically offer a much higher level of data center and virtual system security than most organizations can or will build out on their own. Read this white paper to learn the five ways that cloud …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds