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

  • When individual departments procure cloud service for their own use, they usually don't consider the hazardous organization-wide implications. Read this paper to learn best practices for setting up an internal, IT-based cloud brokerage function that service the entire organization. Find out how this approach enables you to retain top-down visibility and control of network security and manage the impact of cloud traffic on your WAN.

  • U.S. companies are desperately trying to recruit and hire skilled software engineers and developers, but there is simply not enough quality talent to go around. Tiempo Development is a nearshore software development company. Our headquarters are in AZ, but we are a pioneer and leader in outsourcing to Mexico, based on our three software development centers there. We have a proven process and we are experts at providing our customers with powerful solutions. We transform ideas into reality.

Most Popular Programming Stories

More for Developers

RSS Feeds

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