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

  • Although much publicity around computer security points to hackers and other outside attacks, insider threats can be particularly insidious and dangerous, whether caused by malice or employee negligence. In this report, you learn the eight most significant cybersecurity threats that could impact your organization (at any time), Forbes cited internal threats as No. 3, noting that internal attacks can be "the most devastating" due to the amount of damage privileged users can inflict and the type of data they can …

  • Companies undertaking an IT project need to find the right balance between cost and functionality. It's important to start by determining whether to build a solution from scratch, buy an out-of-the-box solution, or a combination of both. In reality, most projects will require some system tailoring to meet business requirements. Decision-makers must understand how much software development is enough and craft a detailed implementation plan to ensure the project's success. This white paper examines the different …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date